微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C/C++#包含格式化最佳实践

在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的优点是更容易看到什么是公共和私有头.

但不要使用相对路径.

原文地址:https://www.jb51.cc/c/113922.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐