首页 > 编程笔记 > C语言笔记(精华版)
C语言#error指令的用法(非常详细,附带示例)
C语言 #error 是一个预处理指令,用于在编译期间产生错误信息,并阻止程序的编译。
#error 指令的用法如下:
当预处理器遇到 #error 指令时,会立即生成一条编译错误,并显示指定的错误内容,然后终止编译过程。
例如,我们的程序针对 Linux 编写,不保证兼容 Windows,那么可以这样做:
VS2015 下的错误信息
需要注意的是:报错信息不需要加引号
再如,当我们希望以 C++ 的方式来编译程序时,可以这样做:
#error 指令的用法如下:
#error error_message其中
error_message
表示错误消息的具体内容,它是一段文本,不需要加引号。当预处理器遇到 #error 指令时,会立即生成一条编译错误,并显示指定的错误内容,然后终止编译过程。
例如,我们的程序针对 Linux 编写,不保证兼容 Windows,那么可以这样做:
#ifdef WIN32 #error This programme cannot compile at Windows Platform #endifWIN32 是 Windows 下的预定义宏。当用户在 Windows 下编译该程序时,由于定义了 WIN32 这个宏,所以会执行 #error 指令,提示用户发生了编译错误,错误信息是:
This programme cannot compile at Windows Platform
这和发生语法错误的效果是一样的,程序会编译失败,请看下面的截图:VS2015 下的错误信息
需要注意的是:报错信息不需要加引号
" "
,如果加上,引号会被一起输出。例如将上面的 #error 指令改为:
#error "This programme cannot compile at Windows Platform"那么错误信息如下:
再如,当我们希望以 C++ 的方式来编译程序时,可以这样做:
#ifndef __cplusplus #error 当前程序必须以C++方式编译 #endif虽然 C++ 几乎完全兼容C语言,但还是有细微的差别,有时候我们希望以 C++ 而不是C语言的方式来编译代码。当编译器处理 C++ 代码时,会定义
__cplusplus
宏,如果检测到这个宏不存在,说明不是以 C++ 方式编译的,此时程序就会报错。