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

keil里面如何在编译时检查赋值是否正确?

[复制链接]
楼主: juginhine
手机看帖
扫描二维码
随时随地手机跟帖
21
xlsbz| | 2010-6-13 19:40 | 只看该作者 回帖奖励 |倒序浏览
    #error "tmr_interval is greater the max value"

juginhine 发表于 2010-6-11 08:48


这是个error 啊

应该是 #error "tmr_interval is greater than max value"

使用特权

评论回复
22
juginhine|  楼主 | 2010-6-13 21:52 | 只看该作者
#define DIV 166
#define MAX_VAL 655350/DIV
#define TMR_INTERVAL  20000
#if (TMR_INTERVAL > MAX_VAL)
    #error "tmr_interval is greater the max value"
#endif

编译一下
fatal error C1189: #error :  "tm ...
原野之狼 发表于 2010-6-13 17:18


呵呵因为没有解决浮点数问题,所以一直也是用这个方法。不过总感觉这种方法不直接,所以才在此开贴请假大家。
毕竟目前用keil c的还是很多。而且这个坛里的牛人还是特别多的。所以希望大家踊跃提出好的解决方法。以供大家都学习一下。

使用特权

评论回复
23
voidx| | 2010-6-13 22:12 | 只看该作者
__assert__可解决浮点。

使用特权

评论回复
24
juginhine|  楼主 | 2010-6-13 23:05 | 只看该作者
keil里面的assert是在运行中的检查啊。我需要的是在编译阶段就发现问题。
当然我们可以避开浮点数,就如我上一贴说的。都扩大10倍就可以了。只是我弄清楚浮点数为什么不行?keil的编译过程是怎么操作的呢?或者有高手有其他的方法可以指点?

使用特权

评论回复
25
voidx| | 2010-6-14 07:10 | 只看该作者
本帖最后由 voidx 于 2010-6-14 07:14 编辑

是__assert__ ,不是assert。
没让你去用库函数。

__assert__只是编译时检查参数,不产生任何代码。

搞C语言难道还不明白,加下划线与不加下划线完全是两回事。

使用特权

评论回复
26
juginhine|  楼主 | 2010-6-16 00:00 | 只看该作者
呵呵用C时间不长啊,所以正在学习过程中。有很多的问题还需各位大侠指教。
正如楼上说的,加下划线和不加下划线的区别我都还没有弄清楚呢?呵呵。再搜索学习下。如果大家有好的学习资料之类的也可以推荐共享下。谢谢!

使用特权

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

本版积分规则