GCC 13.2.0,MinGW-w64
它无法区分制表符和空格!!!
例如,如果您使用制表符缩进,GCC 将不会给您正确的列号。
像这样:
\t#error //please replace '\t' to tabs!
你可以试试这个。
GCC 将报告:
但是,我确实使用制表符来缩进!
我尝试了G++ 10.3.0 MSYS,没有犯这个错误。
制表符只是一个字符。 GCC 在错误消息中显示的列号计算字符数。所以这是正确的。
无论如何,GCC 不可能从这些字符的呈现的意义上告诉您有关该列的任何信息。 GCC 不知道您的终端或编辑器/IDE 将如何呈现其输出的字符序列。
演示文稿甚至可能不是等宽字体,因此演示文稿中的“列”甚至没有一致的含义。即使演示文稿采用等宽字体,选项卡的宽度也不是标准化的,并且还取决于演示终端/应用程序。