[讨论]const和define哪个好?!
刚看一本C++的书 说现在很多程序员在设置常量时喜欢用const不喜欢用define我对此深表质疑!
书上说用define可能会引起编译上的错误 (其他的什么也没说)
我想知道大家对此有什么感想
----------------解决方案--------------------------------------------------------
同意书上的看法.
我觉得最好用const.(常量)
顶~~~~~~~`
----------------解决方案--------------------------------------------------------
为什么
const是占内存的 而define不占啊
----------------解决方案--------------------------------------------------------
是这样的:例如 #define Max=200;
虽然宏常量定义和const定义的常量表面上相似,但功能上存在一 定的差别。宏定义的常量是一种纯粹的置换关系,当编译预处理时遇到#define 指令,便以200替代Max,它没有数据类型;而采用const定义的常量具有数据类型特征。定义数据类型的常量便于编译系统进行数据类型检查,使程序可能出现的错误更容易排除。因此与#define相比,const定义常量削除了程序的不安全性。
----------------解决方案--------------------------------------------------------
以下是引用pinglideyu在2007-1-31 16:21:59的发言:
是这样的:例如 #define Max=200;
虽然宏常量定义和const定义的常量表面上相似,但功能上存在一 定的差别。宏定义的常量是一种纯粹的置换关系,当编译预处理时遇到#define 指令,便以200替代Max,它没有数据类型;而采用const定义的常量具有数据类型特征。定义数据类型的常量便于编译系统进行数据类型检查,使程序可能出现的错误更容易排除。因此与#define相比,const定义常量削除了程序的不安全性。
是这样的:例如 #define Max=200;
虽然宏常量定义和const定义的常量表面上相似,但功能上存在一 定的差别。宏定义的常量是一种纯粹的置换关系,当编译预处理时遇到#define 指令,便以200替代Max,它没有数据类型;而采用const定义的常量具有数据类型特征。定义数据类型的常量便于编译系统进行数据类型检查,使程序可能出现的错误更容易排除。因此与#define相比,const定义常量削除了程序的不安全性。
为了内存我宁可冒危险
从我的经验上说这点危险很容易避免 它的危险程度并不高
在使用复杂一点的宏时注意一下就好了
----------------解决方案--------------------------------------------------------
其实在实际生活中我并没有注意到这一点的。
不过,我还是想建议你用后一种。
顶~~~~~~~`
----------------解决方案--------------------------------------------------------
我想书上的意思是:如果是少量常量可以用define
大量的为了避免错误应该用const
那你想想 常量越多用const就越占内存了
所以从什么角度来说
我认为都要用define 只要在做宏定义是注意着点就没事
----------------解决方案--------------------------------------------------------
这样的话,我可以赞同你的观点。
顶~~~~~~~~~
----------------解决方案--------------------------------------------------------
那就把这个问题放一放
去帮我找找哪有压缩文件的算法去吧
----------------解决方案--------------------------------------------------------
现在看看别人对这个问题有什么看法
----------------解决方案--------------------------------------------------------