打印

FWLib不是德国人写的吧?

[复制链接]
3030|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
simon21ic|  楼主 | 2009-1-24 02:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近无所事事,看STM32的库玩,包括USB的库。

并不是想拿来说事,只是给大家一个提醒,关于C语言的严谨性。

#define _SetEPAddress(bEpNum,bAddr) _SetENDPOINT(bEpNum,
    _GetENDPOINT(bEpNum) & EPREG_MASK | bAddr)

这个代码有什么问题吗?发现还不止这一个地方。

第一点建议:别拿优先级开玩笑,即使你非常清楚,倒背如流
第二点建议:宏定义的参数,绝对不要忘了加(),世界比你想象的复杂
第三点建议:尽量确保在所有支持的编译器上0警告,即使在最高的警告级别下。

修改:
#define _SetEPAddress(bEpNum,bAddr) _SetENDPOINT((bEpNum),
    (_GetENDPOINT(bEpNum) & EPREG_MASK) | (bAddr))
沙发
Swd21ic| | 2009-1-28 10:48 | 只看该作者

re

:D 你是德国人吗?

使用特权

评论回复
板凳
simon21ic|  楼主 | 2009-1-28 12:19 | 只看该作者

不是德国人就不用那么严谨?

那就当我没说,BZ删掉此贴

使用特权

评论回复
地板
mcuisp| | 2009-1-28 20:25 | 只看该作者

呵呵,我做过德国人骂我的程序不够严谨的梦。

使用特权

评论回复
5
simon21ic|  楼主 | 2009-1-29 05:37 | 只看该作者

参与过一些开源项目,看过不少德国人写的代码

虽然不是所有代码都是非常严谨的,但就平均水平而言,德国人的严谨绝对不是假的。

要不再举个ST的IAR下的示例代码中更加严重的问题?
先说一下问题引发的结果:在某些条件下,某些中断无法执行。
当然也可能这个问题已经有人发现了,我只是没有看到。但这个问题存在于ST的FWLib2.0之前(包括2.0)的demo中。

使用特权

评论回复
6
ijk| | 2009-2-2 11:31 | 只看该作者

FWLib的作者是不是德国人

  FWLib的作者是不是德国人,在公开的资料里不得而知。就我的体会来说,STM32的FWLib是在逐步完善的,其严谨性也是有所加强,在不少地方也象LZ所说加上了括号;总体感觉FWLib(在严谨性上面)还可以。
  我没有下载STM32的最新FWLib,印象里版本应该是V2.0.3?不知道最新的FWLib还存在LZ说的问题吗?

使用特权

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

本版积分规则

266

主题

2597

帖子

104

粉丝