(1)类型的安全性检查:const常量有数据类型,而define定义宏常量没有数据类型.则编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查(字符替换时可能会产生意料不到的错误,如上面的程序所示): (2)调试:部分调工具可以对const常量进行调度,但不能对宏常量进行调度: (3)编译器的处理方式不同:define宏是在预处理阶段展开,const常量则是编译运行阶段使用: (4)存储方式不同:define宏仅仅是展开,有几个地方使用则展开几次,不分配内存:const常量…