【发布时间】:2015-08-27 15:33:13
【问题描述】:
我听说你应该更喜欢编写internal include guards而不是external include guards。
我在互联网上搜索过,但没有找到答案。
这是 Herb 和 Andrei 的《C++ 编码标准》一书的 sn-p,其中显示了“外部包含保护”:
避免使用旧版本中提倡的过时的外部包含守卫 书籍:
#ifndef FOO_HJNCLUDED_ //NOT recommended
#include "foo.h"
#define FOO_HJNCLUDED_
#endif
现在,这就引出了下面的问题:
问:
什么是内部包含防护,什么是外部包含防护?两者有什么区别,为什么首选内部包含守卫?
我希望答案也提供一个例子。
编辑:我最终回答了我自己的问题。
【问题讨论】:
-
请编辑您的问题并举例说明。
-
从未听说过这个术语。你从哪里读到的?
-
@vsoftco C++ 编码标准,Herb Sutter 和 Andrei Alexandrescu 提到的一个
-
#pragma once也不错。即使是非标准的,它也受到所有主要编译器的支持。怎么从来没有标准化过 -
@vsoftco 我最终回答了我自己的问题,我今天也确实学到了一些新东西。
标签: c++ header-files include-guards