1:#error的用法程序员
#error用于生成一个编译错误消息,并中止编译用法spa
#error messagecode
注:message不须要用双引号包围io
#error编译指示字用于自定义程序员特有的编译错误消息编译
相似的,#warning用于生成编译警告,但不会中止编译class
#include <stdio.h> #define CONST_NAME1 "CONST_NAME1" #define CONST_NAME2 "CONST_NAME2" int main() { #ifndef COMMAND #warning Compilation will be stoped ... #error No defined Constant Symbol COMMAND #endif printf("%s\n", COMMAND); printf("%s\n", CONST_NAME1); printf("%s\n", CONST_NAME2); return 0; }
2:#line的用法file
#line用于强制指定新的行号和编译文件名,并对源程序的代码从新编号用法程序
#line number filenameerror
注:filename可省略top
#line编译指示字的本质是重定义__LINE__和__FILE__
#include <stdio.h> #line 14 "Hello.c" #define CONST_NAME1 "CONST_NAME1" #define CONST_NAME2 "CONST_NAME2" void f() { return 0; } #line 14 "Hello.c" int main() { printf("%s\n", CONST_NAME1); printf("%s\n", CONST_NAME2); printf("%d\n", __LINE__); printf("%s\n", __FILE__); f(); return 0; }