c语言之条件编译

1、条件编译概念

        有条件的编译,通过控制某些宏的值,来决定编译哪段代码;

  • 形式:

        ①形式1:判断表达式 MACRO 是否为真,据此决定其所包含的代码段是否要编译

        ②注意:#if形式条件编译需要有值宏

#define A 0

#if A
    printf("line:%d\n",__LINE__); // 如果 MACRO 为真,那么该段代码将被编译,否则被丢弃
#endif

2、二路分支

// 二路分支
#if A                //MACRO为真就执行
    printf("line:%d\n",__LINE__); 
#elif B              MACRO为真就执行
    printf("line:%d\n",__LINE__);
#endif

3、多路分支

// 多路分支
#if A
    ... 
#elif B
    ...
#elif C
    ...
#endif

4、判断宏 MACRO 是否已被定义

// 单独判断
#ifdef MACRO    //判断MACRO是否定义,定了则执行
    ...
#endif

// 二路分支
#ifdef MACRO
    ...
#else
   ...
#endif

5、判断宏MACRO是否未被定义

// 单独判断
#ifndef MACRO    //判断MACRO是否定义,没有定义则执行
    ...
#endif

// 二路分支
#ifndef MACRO
    ...
#else
   ...
#endif
  • 总结:
  • #ifdef 此种形式,判定的是宏是否已被定义,这不要求宏有值;

  • #if 、#elif 这些形式,判定的是宏的值是否为真,这要求宏必须有值;

  • #ifdef和#if结尾需要添加#endif表示结束条件,用以包裹代码块选择那一部分代码参与编译。

6、 判断宏MACRO是否未被定义多用在头文件的编写

#ifndef _HEAD_H
#define _HEAD_H

#include <string.h>     //等等
...
... (头文件正文)
...

#endif

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

biubiuboomy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值