#undef 作用:取消定义的宏 指令格式:#undef 标识符 运行结果: 注意:在《MISRA-C-2004工业标准的C规范》中要求不允许使用#undef,详见《MISRA-C-2004工业标准的C规范》规则19.6。 ...
undef 是在后面取消以前定义的宏定义 该指令的形式为 undef 标识符 其中,标识符是一个宏名称。如果标识符当前没有被定义成一个宏名称,那么就会忽略该指令。 一旦定义预处理器标识符,它将保持已定义状态且在作用域内,直到程序结束或者使用 undef 指令取消定义。 ...
2017-11-26 13:18 0 1732 推荐指数:
#undef 作用:取消定义的宏 指令格式:#undef 标识符 运行结果: 注意:在《MISRA-C-2004工业标准的C规范》中要求不允许使用#undef,详见《MISRA-C-2004工业标准的C规范》规则19.6。 ...
预处理命令 在接触#if、#undef这类预处理指令前,大部分都都接触过#define、#include等预处理命令,通俗来讲预处理命令的作用就是在编译和链接之前,对源文件进行一些文本方面的操作,比如文本替换、文件包含、删除部分代码等,这个过程叫做预处理(在编译之前对源文件进行简单加工 ...
#undef的语法 定义:#undef 标识符,用来将前面定义的宏标识符取消定义。 整理了如下几种#undef的常见用法。 1. 防止宏定义冲突在一个程序块中用完宏定义后,为防止后面标识符冲突需要取消其宏定义。 例如: 在一个程序段中使用完宏定义后立即将其取消,防止 ...
在Visual Studio2008中编写如下代码: 编译器会对 cout << MODI + 1 << endl;这行语句报错。 原因就是#undef起的作用: 当用完一个宏,比如MODI,不希望下面的代码再用到这个MODI ...
注:##连接两边字符串。 ...
使用条件宏进行条件编译 譬如,对于同一份代码,我想编译出两个不同的版本,在其中一个版本中去掉某一部分功能, 这时可以通过条件宏判断是否编译,例: 如果不使用条件宏进行控制,想编译两个不同版本的程序,就需要保存两份源代码。 条件编译的语法和if else语法类似 ...
Ragel是个有限状态机编译器,它将基于正则表达式的状态机编译成传统语言(C,C++,D,Java,Ruby等)的解析器。 用Ragel可以很方便且很容易的写出各种FSM,也经常用作语法检测器。 Ragel State Machine Compiler 一个用C语言实现的例子 ...
宏定义是在程序编译前的预处理阶段,对所有使用到宏的地方进行替换; 今天看到代码里面一大推的 #define与#undef的使用,却不甚明白看了好一阵子才弄清楚是干什么的,其实很简单。 定义: 同一类型的处理动作(很多简单 ...