重现步骤:
将以下行插入到 C++ 源代码的任意行中。
#1234
任何行,包括第一行、最后一行。甚至你也可以像这样在函数头和函数体之间输入。
int foo()
#1234
{
return 0;
}
数字可以很长,我测试了170多个字符。
如果添加任何非数字字符,则会出现编译错误。
我的问题是:为什么 # 后跟数字不会破坏编译,而 # 后跟非数字字符却会破坏编译。
谢谢大家抽出时间。
这是一条线指令。大多数预处理器输出这些内容是为了告诉编译器它实际上位于原始源文件中的哪些行。
由于预处理器可以向其提供给编译器的源代码添加许多(有时数百甚至数千)行,因此编译器需要跟踪原始源文件的行号。这是通过诸如此类的特殊指令来完成的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)