- 论坛徽章:
- 0
|
whyglinux ,很高兴你能提出你的见解,我认为能在一个程序论坛能如此激烈和深刻的讨论一个问题是多么的美好,就像CSDN那种教学站点,我是实在没什么兴趣和他们唠叨,对于你提出的反驳相当的中肯和犀利,你所说的我认为很是正确,当然对于宏,我想我们应该采取容忍的态度,相信我,这不是试图说服你或者其他人要在怎么作,而是通过这种友善的争论——就像XP团队的第二条理念所说的:XP团队的程序员是要通过争论,甚至是面红耳赤的场面来讨论问题的,因为那就像头脑风暴一样有效。
曾经当我在vxWorks下编程时,我不小心看到了他的源代码的实现,我被其中巧妙的宏使用所吸引
知道后来我为PDA编写基于Wince的程序时,在C#环境下进行工作,我使用了大量的const来定义常量,我不得不说这两中方式都很棒,都是保证我的程序能轻易延展的好的方法。
当然,有一天,我为msp430和f020编写代码的时候我发现,硬件工程师告知我,由于其核心代码太大,留给我为GPRS编写驱动程序所需的内存空间仅有1K时,我不得不尽量的试图减少我对内存的扩展使用,那么当我的工作进行到最后发现内存还需要40bits时,我不得不尝试把所有常量的定义改为了enmu,这其实是个很好的主义,但是对于GPRS中需要的大量String信息,我还是不得不用#define来代替……或者这实在说明不了什么,因为我确实在其后的日子里在PC上编译程序时,我仍是很理智和谨慎的使用着C++中的template(我的系统STL大量使用)的同时,更习惯的使用了const定义,还是像原来那么美妙。
那么,#define就像他曾经存在过一样,我用他解决这问题,const却是像现在一样,是我的首选。
或者更多时候,我的程序——也不排斥任何能实现目的的设想 |
|