常见宏定义

原文链接: https://www.cnblogs.com/zhwl/archive/2012/11/08/2759847.html

#undef ,#ifdef,#ifndef,#if 的用法

#undef 是在定义的地方取消以前定义的宏定义

语法格式

#undef   标识符

解释:其中,标识符是一个宏名称。如果标识符当前没有被定义成一个宏名称,那么就会忽略该指令。
在C语言中一旦定义预处理器标识符,它将保持已定义状态且在作用域内,直到程序结速或使用#undef指令取消定义

例子

#define TRACE
#if DBG							//GBD 成立如果条件满足执行这个分支
	#undef  	TRACE			//释放之前定义的#define TRACE,防止重复定义
	#define		TRACE  iiiiii
#else							//DBG 不成立 执行这个分支
	#ifndef TRACE				//当 TRACE 没有被定义的时候
	#define TRACE				// 定义TRACE
	#endif						//结束该分支
	
#endif							//结束总的

#ifdef , #ifndef 使用

条件编译命令最常见的形式为

#ifdef    标识符
	程序段1
	
#else 
	程序段2

#endif 

#ifndef 	标识符
	程序段1
	
#else 
	程序段2

#endif 

#if 	表达式 //是一个表达式,不是简单的标识符
	程序段1
	
#else 
	程序段2

#endif

当表达式成立的时候执行程序段1,否则执行程序段2

特别注意

#undef 释放之前的宏定义可单独使用之外
#ifdef#ifndef#if 都要与#endif 配对

如:

#if... #else...#endif

	#ifdef...#endif
	
	#ifndef...#endif
	/*一一匹配对应*/

猜你喜欢

转载自blog.csdn.net/weixin_44880138/article/details/101544254