我正在开发一个已知只能在 Windows 上运行并在 Visual Studio 下编译的代码库(它与 excel 紧密集成,所以它不会去任何地方)。我想知道我是否应该使用传统的包含防护或#pragma once用于我们的代码。我认为让编译器处理#pragma once会产生更快的编译,并且在复制和粘贴时更不容易出错。它也稍微不那么难看 ;)
#pragma once
;)
注意:为了获得更快的编译时间,我们可以使用Redundant Include Guards但这增加了包含文件和包含文件之间的紧密耦合。通常没关系,因为防护应该基于文件名,并且只有在您需要更改包含名称时才会更改。
我认为它不会对编译时间产生重大影响,但#pragma once在编译器中得到很好的支持,但实际上并不是标准的一部分。预处理器可能会更快一点,因为它更容易理解您的确切意图。
#pragma once更不容易出错,而且输入的代码也更少。
为了加快编译时间,只需转发声明而不是尽可能包含在 .h 文件中。
我更喜欢使用#pragma once.
请参阅此wikipedia 文章,了解同时使用这两种方法的可能性。