打印

宏定义不太明白啥意思

[复制链接]
1767|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
梦爱琴所|  楼主 | 2012-3-12 11:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#define CPU_F ((double)5529600)  //晶振使用的频率为5.5296MHZ
#define delay_us(x) __delay_cycles((long)CPU_F*(double)x/1000000.0)
#define delay_ms(x) __delay_cycles((long)CPU_F*(double)x/1000.0)


问题:
1)__delay_cycles的下划线代表什么?
2)delay_us(x) __delay_cycles((long)CPU_F*(double)x/1000000.0)具体怎么计算?
3)反汇编后是怎样的?(好奇它的汇编)
哪位对C比较熟的,帮忙解释一下。

相关帖子

沙发
amwrdfe| | 2012-3-12 12:55 | 只看该作者
本帖最后由 amwrdfe 于 2012-3-12 13:00 编辑

__delay_cycles代表的是一个函数或者宏,
具体怎么算,看__delay_cycles是怎么定义的吧。
汇编嘛,
常量其实跟extern没啥区别,数据直接写寄存器或者内存。
带参数的嘛,其实跟调用函数没什么区别...
只是看看keil的汇编而已...其他就不清楚了~

使用特权

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

本版积分规则

个人签名:像高手学习,像昨天的自己学习

15

主题

480

帖子

2

粉丝