打印

#if.....#endif是什么意思?

[复制链接]
5793|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
349264710|  楼主 | 2010-11-1 15:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我看到一个程序的结构是#if....#endif ,这样的结构是什么意思啊,有什么作用,菜鸟求解!
  #if ()
  ....
  #endif

相关帖子

沙发
zhangf1021| | 2010-11-1 15:29 | 只看该作者
宏定义
如果括号里的为真,则中间的代码执行

使用特权

评论回复
板凳
349264710|  楼主 | 2010-11-1 15:32 | 只看该作者
本帖最后由 349264710 于 2010-11-1 15:49 编辑

2# zhangf1021
那与if()...else()有什么区别啊,好像都一样哦,生成的代码有大小什么不同吗?

使用特权

评论回复
地板
zhangf1021| | 2010-11-1 15:42 | 只看该作者
一个是宏,括号里的判断条件一般是确定的,不执行的代码是不会生成的
一个是语句,判断条件是不定的,代码全部生成
if else是为了体现代码中的逻辑
#if #else是为了实现条件编译

使用特权

评论回复
5
349264710|  楼主 | 2010-11-1 15:48 | 只看该作者
4# zhangf1021

谢谢,原来这就是条件编译,真是惭愧!

使用特权

评论回复
6
airwill| | 2010-11-1 15:51 | 只看该作者
#if ()
  ....
  #endif
中间要不要执行, 由编译器来判断. 因为 #if 后面的条件是对编译器其作用的.
也就是说, 不同的条件, 会生成不同的代码, 目标 CPU 在运行到这里时, 不会遇到条件判断.

if()...else()中间要不要执行和执行 if 还是 else 后面的代码, 由 CPU 来判断. 因为 if 后面的条件是目标板 CPU 执行到这里时判断的.

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
349264710 + 1 谢谢你的回答,是我更加明白条件编译~ ...
7
老鱼探戈| | 2010-11-1 16:00 | 只看该作者
路过。。。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

77

帖子

3

粉丝