2010南非世界杯_世界杯名单 - clywdl.com

C语言#ifdef和#ifndef条件编译的用法(附带实例)

2026-01-08 02:14:08

在 #if 条件编译命令中,需要判断符号常量所定义的具体值。但有时并不需要判断具体值,只需要知道这个符号常量是否被定义了,这时可以采用另一种条件编译的方法,即 #ifdef 与 #ifndef 命令,分别表示“如果有定义”及“如果无定义”。

#ifdef 的一般形式如下:

#ifdef 宏替换名

语句段

#endif

含义是:如果宏替换名已被定义过,则对语句段进行编译;如果未定义 #ifdef 后面的宏替换名,则不对语句段进行编译。

#ifdef 可与 #else 连用,形式如下:

#ifdef 宏替换名

语句段 1

#else

语句段 2

#endif

含义是:如果宏替换名已被定义过,则对语句段 1 进行编译;如果未定义 #ifdef 后面的宏替换名,则对语句段 2 进行编译。

#ifndef 的用法恰好和 #ifdef 相反,并且它也可以和 #else 连用。

【实例】模拟银行叫号服务。去银行办理业务时,需要先取号,如号码为 100 号,则需等到叫 100 号时才可以办理业务;如果没有取号,则不能办理业务。使用 #ifdef 和 #ifndef 编写程序,模拟此场景。

#include

#define STR "100 号" /*定义宏常量*/

int main()

{

#ifdef STR

printf(STR); /*输出叫号信息*/

printf("能办理业务\n");

#endif

printf("\n");

#ifndef ABC

printf("没取号码,表示没被定义");

#endif

printf("没取到号不能办理业务\n");

return 0;

}

程序运行结果为:

100 号能办理业务

没取号码,表示没被定义没取到号不能办理业务

舒適堡結業|指傳統健身中心終將淘汰 業內人士:市民需私人空間、教練令人煩擾 LOL官网领取中心活动全解析,轻松领取丰厚奖励