打印

STM32 常量问题

[复制链接]
1418|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Jsilcon|  楼主 | 2012-4-12 07:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
假定有如下一段代码
#define  _PI_ 3.14159
#define  _ANOTHER_CONSTANT_ 123.4
double a,b,c;
a = ...;
b = (2.0 * _PI_ * _ANOTHER_CONSTANT_) * a;
c = 2.0 * _PI_ * a * _ANOTHER_CONSTANT_ ;
请问:
1. b的表达式中那些个常量连乘在编译期间就定下来,还是在运行期间加以运算?
2. c的表达式中,编译器会自动把那三个常量在编译时就连乘好吗?
3. 您建议应怎么处理这些情况.
开发环境:Keil uVision4
沙发
sjnh| | 2012-4-12 08:09 | 只看该作者
keil没用
IAR中b,c都是编译时确定(b,c是一样),b,c只是指令中的常数,并不是const,相当于根本不占程序空间
keil你可以看看编译输出的.lst文件

使用特权

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

本版积分规则

9

主题

77

帖子

2

粉丝