#define和const的问题(优缺点!)
我知道#define和const 相比有如下劣势:
1.const定义常量是有数据类型的,而#define宏定义常量却没有
2.const常量有数据类型,而宏常量没有数据类型。编译器可以对const进行类型安全检查,
而对后者只进行字符替换,没有类型安全检查,并且在字符替换中可能会产生意料不到的错误
3.有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。
__________________________________________________
请问:(每个问题10分总共40分)(如果有相应资料可以的话请提供一下)
1.还有其他的劣势么,是什么导致c++要求用const取代#define,有参考文档么?原理?
2.既然有这样那样的劣势,c为什么不要求用const取代#define?
3.#define的优势是是什么?
4.const的劣势是什么?