C/C++#包含格式化最佳实践
发布时间:2020-12-16 05:42:35 所属栏目:百科 来源:网络整理
导读:在C/C++的时候,当我的.cpp / .c文件中包含.h文件时,我遇到了#include指令的文件路径. Google样式指南暗示在#include中使用部分文件路径.话虽如此,我目前正在做一个项目(虽然是一个小项目),当我“继承”代码时,为我编写了一个很好的布局Makefile(for G)和结构
在C/C++的时候,当我的.cpp / .c文件中包含.h文件时,我遇到了#include指令的文件路径. Google样式指南暗示在#include中使用部分文件路径.话虽如此,我目前正在做一个项目(虽然是一个小项目),当我“继承”代码时,为我编写了一个很好的布局Makefile(for G)和结构.也就是说,有一个名为/ project_name的目录,里面是Makefile和几个子目录.例如,/ project_name / inc保存.h文件,并且/ project_name / src保存.cpp文件. Makefile设置为查看每个子目录以编译源代码.
我的问题是,给定目录结构和Makefile,#include的“首选”方法是什么.我使用成功的两个选择如下. > include“mycode.h”//不知道路径,假设我描述的结构 有没有其他的选择,我失踪了? 解决方法
既不使用相反,将所有的公共头放在一个单一根的层次结构中.例如,如果您的项目是foo,请将所有公用标题放入(例如include / foo)中,但是不要犹豫,将每个组件的标题分组:
include/foo/io/printer.hh include/foo/io/reader.hh include/foo/job/job.hh include/foo/job/scheduler.hh 那么如果您的代码仅使用< foo / io / printer.hh>等等,这要求您在构建项目期间传递适当的-I $(top_srcdir)/ include标志.如果您必须安装头文件,那么这个设置可以简化操作,因为代码和用户的代码将使用相同的标题. 如果另外你有私有标题,使用相同的结构,但在另一层次结构中,例如: src/io/parser.hh 你可能决定使用src / foo,也可能不会.不使用src / foo的优点是更容易看到什么是公共和私有头. 但不要使用相对路径. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |