在 .cpp 文件中使用 pragma once

3

最近我阅读了一些代码,发现一些.cpp文件在开头包含了#pragma once。我知道它通常用于.h文件作为保护。

什么情况下应该/可以/必须在.cpp文件中使用#pragma once


3
对于包含cpp文件的糟糕情况。 - Jarod42
@Jarod42 哎呀,这太恶心了,我甚至都没想到它 ;) - Pepijn Kramer
6
很可能作者在开发应用程序时,简单地忘记删除它们。一些开发人员首先创建一个头文件,然后将其保存为 .cpp 文件以进行进一步的修改。此时很容易忽略掉那个 pragma。 - rustyx
@Jarod42 不应该;但以防万一,我可以看到有人放置一个 #pragma once - Richard Critten
@RichardCritten 是的,遗憾的是程序员可以非常有创意地满足编译器的要求。 - Pepijn Kramer
显示剩余5条评论
1个回答

6

#pragma once 不应该在源文件中使用,它的唯一目的是充当 include guard。对于 .cpp 文件来说,通常只需要在编译期间“扫描”一次,这样做不会造成太大的伤害。注意:如果您这么做,Clang tidy 会发出警告。

Warning clang-diagnostic-pragma-once-outside-header #pragma once in main file   

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接