昨天我试图在我的工作树中注入编译错误。通常我使用#error来生成编译错误。但我尝试了#1,但它没有用。这可能是什么原因?
t1.c
#include <stdio.h>
int main (){
#error
}
**compilation error**
t1.c:3:3: error:
#error
t2.c
#include <stdio.h>
int main (){
#1
}
But there is no compilation error in t2.c
答案 0 :(得分:5)
# 1
等主题的变体由C预处理器生成,作为#line 1
的简写。
这是非标准的,但很常见。
您可以在gcc -E
的输出或仅运行预处理器的类似选项中看到它。