gcc 多个包含保护可能对”什么“有用,确切地说?

bq3bfh9z  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(98)

我一直在使用gcc的-H选项,它打印出有关C和C++编译(relevant section of the gcc manual)中的直接和间接包含的信息。
作为输出的一部分,有一节“多个包含保护可能对:有用“,其中列出了许多项目和系统头文件。
这意味着什么,这个列表是如何确定的,为什么它说 “多个” 包含保护可能是有用的?
(我熟悉include guards的一般概念,以及为什么要使用它们-我正在寻找有关此消息的详细信息,以及它对我的项目意味着什么。

qyyhg6bp

qyyhg6bp1#

在这种情况下,“multiple”修饰的是“includes”而不是“guards”。所以“include guards”和“multiple include guards”是一回事。也就是说,它们防止同一文件的多个包含。
这个列表大致是这样的:首先,所有的文件都被考虑到列表中。但是,主文件被排除在外;有一个包含保护的文件;用#import打开的文件;和有#pragma once的文件。
使用guards的原因是它们使头文件等幂,并且可以减少编译时间。IMO它们是C和C++的最佳实践。

相关问题