找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4459|回复: 1
收起左侧

[求助][原创]预处理命令问题

[复制链接]
ID:17963 发表于 2009-10-11 12:19 | 显示全部楼层 |阅读模式

#ifdef 标识符

   程序段1

#else

   程序段2

#endif

      书上说命令的功能是:如果指定的标识符已被定义,则程序段1参加编译并产生有效代码,否则程序段子参加编译。

      举例:

       #define CPU 8051

       #ifdef  CPU

       #define FREQ 6

       #else

       #define FREQ 12

       #endif

       书上说这后面的源程序不作任何修改就可以适用于两种时钟频率的单片机系统。

       我的问题是为什么只定义了一个#define CPU 8051,就可以适用二两种时钟频率,即CPU被定义了,那么它不执行了#define FREQ 6这段代码,而未执行#define FREQ 12代码吗?小弟还是搞不懂,望各位前辈指点指点

回复

使用道具 举报

ID:9542 发表于 2010-1-27 21:47 | 显示全部楼层

一个系统有两种工作频率时,而你又还没确定系统要哪种时钟工作时,这时这种定义就非常有用了,当系统定义那种时钟时你就定义一下告诉编译器那些程序要编译,那些不要编译,只有被编译的程序才被写到ROM里去,这提高了程序的通用性和减小程序代码!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表