是否有充分的理由不在每个头文件中使用#pragma一次?

时间:2012-04-23 22:39:26

标签: c++ header-files pragma

我是C ++的新手,并开始像大多数人一样组织我的代码:在“头文件”和“源文件”中。

我在包含内联函数的所有头文件中使用#pragma once。但我想知道是否有理由反对在每个头文件中使用它?

1 个答案:

答案 0 :(得分:5)

  

我在所有包含内联函数的头文件中使用#pragma一次

这就是需要#pragma一次的原因之一。对同一内联函数有多个定义是正常的和预期的。当多个翻译单元#include相同的标题时,尤其是模板函数,这是不可避免的。如果编译器实际上没有内联函数,链接器只选择它找到的一个定义。您需要#pragma一次以避免同一类型的多个定义。