c/c++:#define、#ifdef以及#if defined

本文详细介绍了C/C++中的预处理器指令#define,包括无参数宏和有参数宏的定义及使用示例,并提到了注意事项。同时,讨论了#if defined和#ifdef用于头文件保护和条件编译的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.#define

#define的作用是定义宏。在编译过程中所有出现宏名处都用宏定义替代。

1.1 无参数宏

1.1.1 格式

#define 宏名 表达式
宏名一般采用大写字母。表达式可以是数字、字符、字符串、计算式。

1.1.2 举例

#define MAX_SIZE 100
#define NUMBER 3+4

1.2 有参数宏

1.2.1 格式

#define 宏名(形参表) 表达式

1.2.2 举例

#define MAX(a,b) (a>b)?a:b
在后续的程序中,可以使用直接函数MAX(a,b)

1.3 注意事项

a. 必须写在函数体外
b. 不需要加分号
c. 可用#undef 结束其作用域

2.#ifdef 与 #if defined

由于c或c++中头文件可以互相包含,为避免重复定义,使用#ifdef(#ifndef)来规避。

#ifndef XXX
#define XXX
...
程序体
...
#endif

有时候需要使用#ifdef进行分支控制

#ifdef A
	do job1...
#else
	#ifdef B
		do job1...
	#else
		do job2...
	#endif
#endif

上述分支控制较为繁琐,可以使用#if defined(#if !defined)简化

#if defined A || defined B
	do job1...
#else
	do job2...
#endif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值