加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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”//不知道路径,假设我描述的结构
> include“../../project_name/inc/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的优点是更容易看到什么是公共和私有头.

但不要使用相对路径.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读