在一些源码中,有时会看到 #error you must ... 之类的用法,那么,#error 是什么?
#error命令是C/C++语言的预处理命令之一,当预处理器预处理到#error命令时将停止编译并输出用户自定义的错误消息。
如下所示:
#include <stdio.h>
#define SHOW_INFO
int main(void)
{
#ifndef SHOW_INFO
#error you must define SHOW_INFO marco.
#endif
printf("hello world!\n");
getchar();
return 0;
}
这里的 #error,用于判断程序是否定义了 SHOW_INFO 这个宏,如果定义了则正常执行;如果未定义,则引起编译器报错,错误提示信息就是 #error 后面的内容。
如图所示(注释掉 SHOW_INFO 宏定义):