c++中的const类似于宏定义 :
const int c=5 约等于 #define c 5
c++中的const常量与宏定义的不同:
const常量是由编译器处理的,提供类型检测和作用域检查
宏定义由预处理处理,单纯的文本替换。
具体看如下代码:
#include<stdio.h>
//5 const定义的变量,由编译器处理的,提供类型检查和作用域检查
void fun1()
{
#define a 10
const int b = 20;
//#undef a //只卸载a这个宏定义
//# undef //卸载所有宏定义
}
void fun2()
{
printf("a = %d\n", a); //a在这里可以使用
printf("b = %d\n", b); //b在这里不能使用,编译器报错
}
int main()
{
fun1();
fun2();
return 0;
}