打印

一线研发之声:嵌入式C编程经验 之 全局变量猛于虎

[复制链接]
楼主: sedatefire
手机看帖
扫描二维码
随时随地手机跟帖
61
woshixinshou| | 2012-2-20 08:43 | 只看该作者 回帖奖励 |倒序浏览
MARK

使用特权

评论回复
62
highgear| | 2012-2-20 10:18 | 只看该作者
对于全局变量的认识,可以认为是软件水平高低的测试计。做过大型项目,就会理解变量失去控制具有多么大的破坏力,尤其是在使用 c 语言的开发团队,c++ 可以使用 namespace 等稍稍减轻一些痛苦指数。良好的结构,规范的代码是保证项目成功的前提。

来说说具体的情况,c# 里没有宏是经过深思熟虑的。用过 c#后,自然在 c/c++中不会使用那么多的宏了。

#define IRQ_ON()                ********              //开总中断
#define IRQ_OFF()               ********              //开关中断
#define BIT32(i)                   ((u32)(1)  << (i))
#define BIT32_SET(dat,i)     (dat  |=BIT32(i);)
#define BIT32_CLR(dat,i)     (dat &=~BIT32(i);)

前两个应该使用 enum 而不是宏,如果是函数,则可以使用 inline 函数。
后面三个除了让函数莫名其妙外,没有什么多少正面作用。一旦项目大了,估计连自己都记不住这个宏,所以还不如直接写成:
dat  |= 1<<i;
dat &= ~(1<<i);
比使用宏更清晰,也不至于让后来者通篇查找宏的定义。

使用特权

评论回复
63
randyhsd| | 2012-2-20 11:54 | 只看该作者
ding

使用特权

评论回复
64
JerryWu75| | 2012-2-20 12:02 | 只看该作者
楼主说的很要道理,不过具体到项目还是要实际分析。如果是规模小的设计方案,没有较大的RAM空间可以设置足够的堆栈,就需要大量使用全局变量的。不过总体来讲还是尽量少用全局变量是对的!

使用特权

评论回复
65
abin0415| | 2012-3-14 11:20 | 只看该作者
学习了,最近正在给原先自己的小程序升级,原先的程序我自己看着都头疼,当时刚开始学,没经验,写的特烂,全局特多,先在基本都是重新写的。那个费劲呢。深受其害。

使用特权

评论回复
66
tcc8073| | 2012-3-14 11:50 | 只看该作者
如果是通讯方面,我是一定会设定一个数组的RAM单元做全局变量,其他的的那就看情况.现在搞开发都是先实现功能,如果功能没有出来的话,再规范耽误时间安排也是麻烦的,看实际情况而已

使用特权

评论回复
67
happy_snail| | 2012-5-28 21:04 | 只看该作者
学习

使用特权

评论回复
68
wukunshan| | 2012-5-28 23:04 | 只看该作者
建议楼主整理好,写在博客里。

使用特权

评论回复
69
blueshwu| | 2012-5-29 00:32 | 只看该作者
楼主真文笔真幽默,有看匠人手记的感觉。。嘻嘻

使用特权

评论回复
70
chenlubin1988| | 2012-5-30 10:26 | 只看该作者
1# sedatefire
学习了,期待楼主发表关于“状态机”的帖子。

使用特权

评论回复
71
sedatefire|  楼主 | 2012-6-5 14:58 | 只看该作者
喜得千金,奶爸半年。 今日有些问题就重新上线了,恍如隔世,自己的**是越看越喜欢,
顶起,顶起,顶起

使用特权

评论回复
72
mei326| | 2012-6-5 15:38 | 只看该作者
强顶!

使用特权

评论回复
73
yangvu| | 2012-6-14 15:00 | 只看该作者
支持楼主的观点。
期待楼主关于 程序模型 的帖子!!!
状态机 数据流图
很期待。。。。。。

使用特权

评论回复
74
GZZXB| | 2012-6-20 13:00 | 只看该作者
院校的《软件工程》教材?
哪有???

使用特权

评论回复
75
NICKY99| | 2012-6-22 16:56 | 只看该作者
学习了

使用特权

评论回复
76
wentao0100| | 2012-6-22 23:20 | 只看该作者
程序的全局变量使用要通过严格的,全面的分析再添加进去,要不然后悔莫及。

使用特权

评论回复
77
中国机器| | 2012-6-23 10:53 | 只看该作者
以下为他山之玉:
全局变量的优缺点
使用全局变量的优点是:可以减少变量的个数,减少由于实际参数和形式参数的数据传递带来的时间消耗。
但是,使用全局变量也有许多缺点:
(1)全局变量保存在静态存贮区,程序开 ...
程序匠人 发表于 2012-1-11 23:42


多谢多谢,看到这里看懂了

使用特权

评论回复
78
sixgett| | 2012-6-23 11:44 | 只看该作者
:victory:

使用特权

评论回复
79
mpuhome| | 2012-6-26 10:25 | 只看该作者
其实这是公司管理上的问题,而不是技术人员的问题哦
不过大多数小公司,没能力,也意识不到软件规范之类的管理是多么重要

使用特权

评论回复
80
sedatefire|  楼主 | 2012-7-4 11:48 | 只看该作者
哈,顶起,准备截图爽一下

使用特权

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

本版积分规则