发新帖我要提问
12
返回列表
打印

宏定义编译的问题

[复制链接]
楼主: chen3bing
手机看帖
扫描二维码
随时随地手机跟帖
21
zyb125| | 2012-5-28 20:17 | 只看该作者 回帖奖励 |倒序浏览
宏  一系列动作命令的集合

使用特权

评论回复
22
wukunshan| | 2012-5-28 23:23 | 只看该作者
宏定义默认的数据类型是int,超过这个范围自动调整为long,多出两个字节,而你的data空间又不够,就出现这种情况啦。

使用特权

评论回复
23
ayb_ice| | 2012-5-29 08:32 | 只看该作者
宏定义默认的数据类型是int,超过这个范围自动调整为long,多出两个字节,而你的data空间又不够,就出现这种情况啦。
wukunshan 发表于 2012-5-28 23:23
C语言标准是你定义的还差不多

使用特权

评论回复
24
linfuchi| | 2012-5-29 10:21 | 只看该作者
23# ayb_ice :lol

使用特权

评论回复
25
linfuchi| | 2012-5-29 10:46 | 只看该作者
看了下,有几个疑问。
1,宏定义的常量是没有类型的,只是简单的替换,如何会有范围问题?
2,可以认为在预编译后,宏定义被展开,原来命名HOUR_CONST的地方被替换为36000而已,字面常量,印象中,常量应该是放在CODE区,跟数据区有何关系?
3,keil c中,编译器定义的long, long long是几位的?
本人没使用过51,对keil c编译器不熟,求知者解答我的疑惑,谢谢!

使用特权

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

本版积分规则