- const有类型,可进行编译器安全检查,#define 无类型,不可进行类型检查
- const 有作用域,而#define 不重视作用域,默认定义在指定作用域下有效的常量,那么#define 就不能用(可以用#undef结束宏定义生命)
- 宏常量没有命名空间
namespace MySpace{
#define num 1024
}
void test(){
//cout <<MvSpace::NUM<<endl;//错误
//int num =100;//命名冲突
cout<<num<<endl;
}