Posted on 2010-08-28 20:59
kongkongzi 阅读(175)
评论(0) 编辑 收藏 引用 所属分类:
c++ programming
文件包含的名字和顺序
请使用以下标准顺序以保证可读性,并且避免隐藏的依赖:C库,C++库,其他库的.h,你的项目的.h。
所有项目的头文件应作为项目源文件目录的后代列出,不要使用UNIX中的目录快捷方式 . (当前目录)和 .. (父目录)。
举个例子,google-awesome-project/src/base/logging.h应该以#include "base/logging.h"的格式包含。
在 dir/foo.cc中,该文件的主要目的是实现或者测试在dir2/foo2.h中的东西,文件包含应按照如下排序:
1. dir2/foo2.h (首选位置(preferred location) — 请见下面的详细说明).
2. C system files.
3. C++ system files.
4. Other libraries' .h files.
5. Your project's .h files.
首选的排序(preferred ordering,译者注:在以上例子中为dir2/foo2.h )降低了隐藏的依赖。我们希望每个头文件能够自我编译。最简单的方式就是确保它们中的每一个都在某个.cc文件中是第一个被#include的。
dir/foo.cc and dir2/foo2.h通常在同一目录下(比 如base/basictypes_unittest.cc and base/basictypes.h), 但也可能在不同的目录下。
在每个部分(section)中,根据字母顺序排列是不错的方式。
举个例子,google-awesome-project/src/foo/internal/fooserver.cc中 的文件包含顺 序可能是这样:
1 2 3 4 5 6 7 8 9 10 |
#include "foo/public/fooserver.h" // 首选位置 #include <sys/types.h> #include <unistd.h>
#include <hash_map> #include <vector>
#include "base/basictypes.h" #include "base/commandlineflags.h" #include "foo/public/bar.h" |
参考:
1, Google C++ Style Guide:
http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml2, Google C++ 风格指南 - 中文版:
http://yangyubo.com/google-cpp-styleguide/