linux条件编译预编译,c语言预处理 “条件编译”

条件编译简介

通常情况下,我们编译一个程序会将所有的源代码行都进行编译,

但有时候,我们希望根据不同的条件编译生成不同的文件,

例:不同cpu 调用不同的文件进行编译 或引入不同的头文件

或我们设置当前模式为“调试模式”,需要生成调试模式(带日志模式)的可执行文件。

条件编译也是以#开头

条件编译 形式一

形式一:

#if 表达式

程序段1

#else

程序段2

#endif

当表达式为真时,编译程序段1,否则编译程序段2。

例:

#include “stdio.h”

#define max 0

int main(){

int a=10;

int b =20;

int c =0;

#if max

c= b>a?b:a;

printf(“输出 %d ,%d 中的最大值:%d\n”,a,b,c);

#else

c =a>b?b:a;

printf(“输出 %d ,%d中的最小值:%d\n”,a,b,c);

#endif

return 1;

}

//如上图所示:如果max为真时 ,则编译输出最大值的部分,否则编译输出最小值的部分。

条件编译 形式二

形式二:

#ifdef 宏名

程序段1

#else

程序段2

#endif

//形式2的作用是判断宏名是否被定义,如果被定义,则编译程序段1 ,否则编译程序段2

例:

#include “stdio.h”

void main()

{

int a=10;

#ifdef AAA

printf(“计算乘积%d\n”,a*AAA);

#else

printf(“宏未定义无法进行相关计算!”);

#endif

}

条件编译 形式三

形式三:

#ifndef 宏名

程序段1

#else

程序段2

#endif

//形式三的与形式二的区别在于ifndef 代表宏未定义编译程序段1 ,否则编译程序段2。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值