#include的路径及顺序

//foo.cc包含头文件的次序(foo.cc是foo.h的实现文件)
1.foo.h   //优先位置
2.C system file
3.c++ system file
4.其他库的.h文件
5.本项目内的.h文件
原因:
    这种优先顺序排序保证党foo.h遗漏必要的库时,foo.cc的构建会立刻终止。这条规则保证维护这些文件的人们首先看到构建终止的消息而不是维护其他包的人们
 按字符顺序分别对每种类型的头文件进行二次排序是个不错的主意。但是较老的代码不一定符合这条规则,要在方便的时候更改它们。
    

note:你所需要的symbols被哪些头文件所定义,你就应该include哪些头文件,forward declarations除外。

  for example:不如你要用bar.h中的某个symbol,哪怕foo.h中已经包含了bar.h,除非foo.h有明确的说明它会向你自动提供bar.h中的symbol.不过凡事cc文件所对应的头文件已经包含的,就不用再重复包含进cc文件里面了,就像foo.c只包含foo.h就够了,不用再管了后者所包含的其他内容

posted @ 2018-09-19 15:49  看!前方  阅读(1933)  评论(0编辑  收藏  举报