明确告诉编译器只包含该文件一次有什么意义?这在默认情况下不是很有意义吗?有什么理由多次包含单个文件吗?为什么不直接假设呢?是不是和特定的硬件有关?

推荐答案

这里有多个相关问题:

  • Why is 100 not automatically enforced?

  • Why would you want to include a file multiple times?
    其他答案中给出了几个原因(Boost.PreProcessor、X-Macros,包括数据文件).我想添加一个特殊的"避免代码重复"的例子:OpenFOAM鼓励在函数中使用#include个零碎代码是一个常见概念的风格.参见示例this讨论.

  • Ok, but why is it not the default with an opt-out?

  • Why has 101 not become a standardized feature yet (as it is widely supported)?

C++相关问答推荐

Apple Libm的罪恶功能

使用SWI—Prolog的qsave_program生成二进制文件有什么好处?'

为什么下面的递归基本情况在C中不起作用?

C指针算法在函数参数中的应用

特定闪存扇区的内存别名

如果包含路径不存在,我的编译器可以被配置为出错吗?(GCC、MSVC)

为什么sscanf不能正确地从这个字符串格式中提取所有数字?

Rust FFI--如何用给出返回引用的迭代器包装C风格的迭代器?

有什么方法可以将字符串与我们 Select 的子字符串分开吗?喜欢:SIN(LOG(10))

在移动数组元素时获得意外输出

为什么Fread()函数会读取内容,然后光标会跳到随机位置?

将复合文字数组用作临时字符串缓冲区是否合理?

从Raku nativecall调用时精度不同

C中的空指针是什么(_N)?

分配给静态变量和动态变量的位置之间有区别吗?

";错误:寄存器的使用无效;当使用-masm=intel;在gcc中,但在AT&;T模式

模仿 memmove 的行为

Struct 内的数组赋值

在 C 中的 scanf() 格式说明符中使用宏获取字符串长度

初始化动态分配的布尔二维数组的最佳方法是什么?