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

很反感使用宏定义!

[复制链接]
楼主: zhaogongzuo
手机看帖
扫描二维码
随时随地手机跟帖
21
huangqi412| | 2010-4-7 14:18 | 只看该作者 回帖奖励 |倒序浏览
俺推测Y是不是接手前任,,,前任故意而为之...

使用特权

评论回复
22
huangqi412| | 2010-4-7 14:19 | 只看该作者
多不是问题...   几W个也成,      问题是写的清不清楚.    应该从名字要一目了然.

使用特权

评论回复
23
流行音乐| | 2010-4-7 15:10 | 只看该作者
宏定义用的好不好与人有关,用同样一支画笔,不同的人画出来的画大不相同。

使用特权

评论回复
24
程序匠人| | 2010-4-7 15:36 | 只看该作者
不怕宏多,就怕宏嵌套!尤其是多级嵌套!

使用特权

评论回复
25
acmilann| | 2010-4-7 16:51 | 只看该作者
其实无所谓的,主要是看代码的工具,如用source insight看的话就没问题了……

使用特权

评论回复
26
aceice| | 2010-4-7 18:39 | 只看该作者
我习惯深挖..........

使用特权

评论回复
27
520810| | 2010-4-7 18:53 | 只看该作者
其实这个就是好多人的习惯问题了,

使用特权

评论回复
28
zhaogongzuo|  楼主 | 2010-4-8 13:53 | 只看该作者
不怕宏多,就怕宏嵌套!尤其是多级嵌套!
程序匠人 发表于 2010-4-7 15:36

很有道理,我现在接手个项目的,是要求改程序。程序很大,真的有几百个变量和宏定义,对于要改的细节,你必须弄懂,所以要深挖。一个函数里面嵌套几个宏,宏里面还有宏和函数,然后再有宏和函数,,,,,,挖到累死我了。。。而且宏和函数基本都没有解释------所有很郁闷。一个结论,这个程序框架太烂了!基本没有模块化思想!如果是老老实实的调用子程序,也许辛苦一些能看明白,但是里面嵌套太多的宏了,哦------忘记说了,还是汇编程序,那个跳转啊------到处乱来,唉------有时候我宁可自己一个个功能,一个个程序的来敲也不愿意看他的程序!但是给的时间太少了,而且规定你就改他的程序------

使用特权

评论回复
29
lxyppc| | 2010-4-8 14:25 | 只看该作者
很有道理,我现在接手个项目的,是要求改程序。程序很大,真的有几百个变量和宏定义,对于要改的细节,你必须弄懂,所以要深挖。一个函数里面嵌套几个宏,宏里面还有宏和函数,然后再有宏和函数,,,,,,挖到累 ...
zhaogongzuo 发表于 2010-4-8 13:53


楼主,很同情你。
开个玩笑,感觉你直接通过反编译来修改还轻松点

使用特权

评论回复
30
5880527| | 2010-4-8 14:49 | 只看该作者
又是一个遇到给人擦屁股的,还不错,别人给你草纸了,就怕草纸都不给你:lol

使用特权

评论回复
31
cyansheng| | 2010-4-8 15:09 | 只看该作者
太多就不好吧!!

使用特权

评论回复
32
98440622| | 2010-4-11 21:04 | 只看该作者
酷爱宏的飘过……

// =======================================================================
//                                                          E2PRAM SECTION
// =======================================================================
//! E2PRAM section structure definition.
/*!
   It is a template structure definition. To instantiate an E2PRAM section
   object, the data structure type is needed.

   \param   nvdata   Data structure type.
   \param   nvcrc    Data items CRC.
   \param   e2addr   Address of I2C bus.
   \param   modified Whether the data in RAM have been modified, if it is
                     set to true, the E2PRAM needs to be updated.

   \b Example :
   \code
   // Compressor.h
   struct CompressorParameter {
      UInt32_t run_time_in_hour;
      UInt32_t started_times;
   };

   struct Compressor {
      ...
      E2PRamSectionT(struct CompressorParameter) nvobj;
   };
   \endcode
*/
#define E2PRamSectionT(T) \
   struct _tagNVRamBlock##T { \
      struct _tagNVRamSec##T { \
         T        nvdata; \
         UInt16_t nvcrc; \
      }        sec; \
      UByte    e2addr; \
      Bool     modified; \
   }

使用特权

评论回复
33
ejack| | 2010-4-12 07:59 | 只看该作者
……LS也算是一个极端了呃……
:D

使用特权

评论回复
34
xymxym| | 2010-4-12 10:20 | 只看该作者
宏命名很重要,如果命名的好,让人一目了然是什么意思,那么宏就真正成为了程序的一部份.

另外中文注释也是很多程序员欠缺的地方,感觉是想到哪写到哪.我的程序平均两三句都有一个注释,因为我感觉在写完一段代码后,为其加注释,一方面是回顾这段代码,一方面是给写下面的代码留下思考的空间.所以注释很重要!详细的注释更重要!别人拿我的程序去应用的,从来不来问我到底是什么意思,因为注释里很清楚了!

使用特权

评论回复
35
救火车| | 2010-4-12 14:34 | 只看该作者
主要看你会不会用了。
看别人的程序,必须试图理解编程者的思想。不能按自己的想法来。

使用特权

评论回复
36
token| | 2010-4-13 19:14 | 只看该作者
嘿,这么巧,最近刚把一2千行程序缩到9百,就是用一宏,原来程序写的太烂,不断简单重复

使用特权

评论回复
37
一棵小草| | 2010-4-13 20:09 | 只看该作者
程序没有解释,看多少都不懂

使用特权

评论回复
38
后学| | 2010-4-13 22:31 | 只看该作者
跟宏定义没有关系,你缺的是相关的文档和注释,

使用特权

评论回复
39
ayb_ice| | 2010-4-14 08:42 | 只看该作者
宏可是c的精华,LZ千万别看我的程序。

使用特权

评论回复
40
xfgood3872| | 2010-4-14 10:53 | 只看该作者
用宏比较好

使用特权

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

本版积分规则