【发布时间】:2012-06-04 07:03:19
【问题描述】:
在 C 或 C++ 中多次包含头文件有用吗?
如果从不使用该机制,为什么编译器会担心包含两次文件?如果它真的没用,如果新的编译器确保每个头文件只包含一次,不是更方便吗?
编辑:
我知道有一些标准的方法来处理像include guards 和pragma once 这样的事情,但你为什么还要指定呢?只包含一次文件不应该是编译器的默认行为吗?
【问题讨论】:
-
是的,它应该是默认行为,因为这是常见的情况(他们可以定义一个新的预处理器指令
#multipleincludes或其他东西,例如您想要多重包含的罕见情况)。但是 C 旨在使编译器易于从头开始编写,而不是易于编程。这在 1970 年代是有道理的,当时有许多通用架构,没有像gcc这样容易修改的开源编译器,而且程序很少超过 100k 行。这对 2012 年没有意义。始终将常见情况设为默认值! -
我认为它不是重复的:它不质疑技术解决方案的目的,而是为了#include 的实际目的。 这个是我只想问的一个问题,而另一个不是。
-
我正在评估重新开放投票并决定保持关闭状态。即使这不是一个骗局,这个问题似乎本质上是推测性的,并且可能会吸引基于意见的答案——这也是本网站的题外话。
标签: c++ c header-files