模拟编译错误

时间:2014-10-05 07:30:44

标签: c c-preprocessor

昨天我试图在我的工作树中注入编译错误。通常我使用#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

1 个答案:

答案 0 :(得分:5)

# 1等主题的变体由C预处理器生成,作为#line 1的简写。

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

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