如果我有自己的库项目,我应该#include在我的应用程序中使用哪种样式来自它们的标题?是否有严格的规则,这两个实际上对编译器/预处理器有不同的含义,还是仅仅是标准?
pax*_*blo 13
根据ISO标准,几乎没有规则.两种形式都与实现有关,它们在哪里查找头文件.它们甚至不必是文件.
部分2.9的C++ 11比使得事实上,你可以包括其他两个品种之间没有区别"的<>变种,并>在""变异,但很少人会傻得在文件名中使用这些字符:-)
科16.2进一步指出:
表单的预处理指令
# include < h-char-sequence> new-line搜索一系列实现定义的位置,以查找由<和>分隔符之间的指定序列唯一标识的标头,并使标头的整个内容替换该指令.如何指定场所或标识的头是实现定义的.表单的预处理指令
# include " q-char-sequence" new-line导致由"分隔符之间的指定序列标识的源文件的全部内容替换该指令.以实现定义的方式搜索指定的源文件.如果不支持此搜索,或者搜索失败,则会重新处理该指令,就好像它# include < h-char-sequence> new-line使用原始指令中相同的包含序列(包括>字符,如果有)一起读取.
我倾向于使用<>系统标题和""我自己的标题,但这只是个人偏好.我会注意到前面提到的C++ 11文档指出:
注意:虽然实现可能提供一种机制来使
<>搜索可以使用任意源文件,但一般来说,程序员应该使用<>随实现提供的头的""表单,以及实现控制之外的源表单.
这不是强制性的,但它仍然是一个好主意.
| 归档时间: |
|
| 查看次数: |
4144 次 |
| 最近记录: |