2014-10-05 81 views
1

昨天我试图在我的工作树中注入编译错误。通常我使用#error来生成编译错误。但我尝试了#1,但它不起作用。这可能是什么原因?上的# 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 

回答

5

变化由C预处理作为#line 1的简写生成。

这是非标准的,但常见的。

您可以在gcc -E或仅运行预处理器的类似选项的输出中看到它。