MISRA--作为工业标准的C编程规范 (以后不怕三目运算符了,还

[复制链接]
10287|54
li_mu 发表于 2008-6-7 15:36 | 显示全部楼层

Rule 101. 禁止指针运算(代之以数组下标运算)。

Rule 101. 禁止指针运算(代之以数组下标运算)。

当系统存储器规模比较大时
数组的运行速度大于链表(连续整块操作时),而且垃圾收集不用担心了
gooog 发表于 2008-6-8 10:32 | 显示全部楼层

可以参考,但是不要被束缚

要想写一些高效率的底层驱动话,不用指针和技巧,好像比较难。
古道热肠 发表于 2008-6-9 16:13 | 显示全部楼层

指针和数组?谁好

还是觉得用指针便捷.
兰天白云 发表于 2008-6-10 08:00 | 显示全部楼层

安全第一,顶

HWM 发表于 2008-6-10 08:00 | 显示全部楼层

to 23楼:往往问题就出在“便捷”上,呵呵

为了使程序更清晰易懂,且更少后遗症,牺牲点便捷还是值得的,特别是在深度嵌入式系统中。象类似汽车电子这样的系统事后维护是很困难的,而且出错的后果也是相当严重的。
fineamy 发表于 2008-6-10 08:52 | 显示全部楼层

还是用ADA吧

 楼主| snakeemail 发表于 2008-6-10 10:44 | 显示全部楼层

第一条裤子呀,终于不用裸奔了.

俺发这个帖子的初衷是:我记不住三目运算符,也记不住***p,可是我看的面试的题目又考这些,大家在论坛上也讨论这些,但是我平时的工作又用不到这些东西,所以我要找个东西,回答这个矛盾.
我记得原来有个帖子,void*(*p...),反正用这个实现了51复位,从0x0000开始运行,这个东西我在著名的<c语言陷阱>这本书中也看到过,确实很酷,可是我记不住.我很苦恼,不过我再也不会苦恼了.
c语言不是什么都要强记的,例如static的应用,定义我知道,可是一直不知用在哪里,知道我在别人的滤波程序中看到了这个东西,我才记住了用法.简单实用才是重点.
用不用这些标准,是分场合的,写doom游戏的引擎,肯定效率至上,有问题,发个补丁,写汽车上的ABS,安全第一吧,也许内存泄漏会成了汽油泄漏.实际上这个标准也有关键和非关键两个要求,也许我们还可以搞个21ic消费电子标准C语言标准,21ic仪表标准C语言标准.
对于编写程序本身,以及cpu性能的争论,我也渐渐失去兴趣,我的兴趣都放在自动控制上.我希望串口队列,键盘去抖都写好,我直接去写一些重点应用.串口队列,和键盘定时查询,PID代码,dft代码,我都是直接看别人的代码然后实现的,我的工作是知道原理,看别人的代码,然后copy进去实现.现在要看现代控制理论了,矩阵和线性代数呀.
王紫豪 发表于 2008-6-10 13:56 | 显示全部楼层

禁止这个,禁止那个

他怎么不根据这个开发个 C-- 语言呢?太拘泥于教条。
zealane 发表于 2008-6-10 14:22 | 显示全部楼层

疯了~~~~~~~~

有些太呆板了。。。。。。
宇宙飞船 发表于 2008-6-10 15:08 | 显示全部楼层

垃圾教条!

IceAge 发表于 2008-6-10 20:37 | 显示全部楼层

说这个坛子里很多人有眼无珠,还没有说错

这些规则,并非空穴来风,而是深思熟虑的结果,是血泪教训得出的宝贵经验。不是一个呆在一口小井里,以为一颗石子的涟漪就是巨浪的人所能理解的。

只有一个人一部车时,自然看不到交通规则的重要。1000个人1000辆车时,交通规则固然令个人不爽,但对于全局的顺畅,却起至关重要的作用。

这些规则对于习惯了单打独斗,从不也不准备让后辈接手的游击队员们,确实是垃圾教条

王紫豪 发表于 2008-6-10 22:01 | 显示全部楼层

不违背语法,代码风格遵守k&R

BitFu 发表于 2008-6-11 08:49 | 显示全部楼层

哈哈

不使用break,continue,goto
Microsoft要重写所有代码了!
Wxy8030 发表于 2008-6-11 08:59 | 显示全部楼层

嘿嘿.......

习惯了单打独斗,从不也不准备让后辈接手的游击队员们——??

有时候这也是不得已哈......
zealane 发表于 2008-6-11 12:02 | 显示全部楼层

我就怀疑

刚刚网上查了一下MISRA C规范。发现并不是楼主贴出来的。
关于break,真实的规范是这样的
规则14. 6 :循环体中最多只能出现一个break 语句用于结束循环。


这个才合理嘛。哪有楼主说除了switch不能用break的。

大家看看正式的规则吧。不能被误导

http://www.bol-system.com/NEWS/MISRA%20C%D1%D0%BE%BF%B1%A8%B8%E6.pdf
MicroMMU 发表于 2008-6-11 12:36 | 显示全部楼层

英文版的MISRA在IAR开发环境里有.

写代码时可提示
gyt 发表于 2008-6-11 14:55 | 显示全部楼层

谢谢发表

hotpower 发表于 2008-6-11 22:48 | 显示全部楼层

Rule 101. 禁止指针运算(代之以数组下标运算)--delphi之真谛~~

HWM 发表于 2008-6-12 08:22 | 显示全部楼层

有的是禁止条款,而有的则是建议条款,并非一视同仁。

另外按我理解,一般更适用于深度嵌入式系统且可靠性要求相当高的场合。
wesleysz 发表于 2008-6-12 10:57 | 显示全部楼层

很好,很实用,收藏了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部