问我在自己定义的行中遇到了奇怪的语法错误#ifdef过的行里遇到了奇怪的语法错误。
答根据 ANSI C 标准,处于“关闭”状态的#if, #ifdef或#ifndef块内的文本仍然必须由“有效的预处理器标记”组成。这意味着这些字符"和'必须像在真正的 C 代码中一样进行配对,并且配对不能跨越行边界。(请特别注意,在缩写词中的撇号看起来就像一个字符常量的开始。)因此,自然语言注释和伪代码应始终写在“正式”的注释分隔符之间/*和*/。 (但请参阅问题 20.20,以及 10.25。)
参考文献:ISO 第 5.1.1.2 节,第 6.1 节
H&S 第 3.2 节,第 40 页