C语言 条件编译

1、一般情况下,对C语言程序进行编译时,所有的程序都要参加编译,但有时候,对于有些内容,只希望在相关条件满足时才对其进行编译,这就要用到条件编译。条件编译可以选择不同的范围,从而在编译后产生不同的代码。

2、C51的条件编译指令也属于预处理指令的一种,主要要有下三种形式:

1)#ifdef 标识符

          程序段1

   #else

          程序段2

#endif

功能:如果指定的标识符已被定义,则编译程序段1,不编译程序段2,否则则不编译程序段1,直接编译程序段2

 

2

#if 常量表达式

    程序段1

#else

    程序段2

#endif

说明:如果常量表达式为“真”则编译程序段1,否则编译程序段2

 

3

#ifndef 标识符

       程序段1

#else

      程序段2

#endif

说明:该指令跟第一种编译命令的作用刚好相反,如果标识符没有被定义,则编译程序段1,否则编译程序段2.

 

3、本实例利用条件编译指令来控制P0口的8位LED的点亮状态,以学习条件编译指令的使用方法。实现效果是:当要求条件满足时,P0口的低四位LED点亮,不满足时,高四位LED点亮。

 

4、在proteus中绘制电路原理图,本实例中,我们仍然使用前面介绍的P0口控制8位LED流水灯的电路图。

 

5、创建一个新的keil c51工程ex5.c,编写如下的程序,编译并生成ex5.hex文件

#include <reg51.h>
#define MAX 100
void main(void)
{
 #if MAX>80

    P3=0xf0;

#else

    P3=0x0f;

#endif

 while(1);
 }

 

6、在proteus中绘制好电路原理图后,将ex5.hex文件装载到at89c51中,启动仿真,即可看到P3口的低四位LED被点亮了。表明程序段P3=0XF0被编译了,而P3=0x0x没有被编译。

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值