C 语言 条件编译语句

1. 摘要

C 语言中的条件编译是通过预处理指令实现的,允许编译器根据特定条件选择性地编译代码片段,常用于跨平台开发、调试开关、功能裁剪等场景。核心指令包括#if、#ifdef、#ifndef、#else、#elif和#endif。

2. 基本语法

2.1 #ifdef 与 #ifndef

作用:检查宏是否定义,常用于判断某个功能是否启用。
示例:

#define DEBUG  // 定义DEBUG宏

int main() {
#ifdef DEBUG
    printf("调试模式:变量x的值为%d\n", x);  // 宏定义时,编译此句
#else
    printf("运行模式\n");  // 宏未定义时,编译此句
#endif
    return 0;
}

2.2 #if、#elif 与 #else

作用:根据表达式的值(整数常量)决定是否编译代码块,支持复杂条件判断。
示例:

#define VERSION 2

int main() {
#if VERSION == 1
    printf("版本1功能\n");
#elif VERSION == 2
    printf("版本2新增功能\n");  // 此句会被编译
#else
    printf("未知版本\n");
#endif
    return 0;
}

2.3 defined 运算符

作用:在#if中检查宏是否定义,比#ifdef更灵活(可用于复杂表达式)。
语法:defined(宏名) 或 defined 宏名(返回 1 表示已定义,0 表示未定义)。
示例:

#define OS_WIN
// #define OS_LINUX

int main() {
#if defined(OS_WIN) && !defined(OS_LINUX)
    printf("Windows系统专用代码\n");  // 此句会被编译
#elif defined(OS_LINUX)
    printf("Linux系统专用代码\n");
#else
    printf("其他系统代码\n");
#endif
    return 0;
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值