(转)c/c++深层探索
使用const目的就是指望编译器为我们的代码进行有益检查,以下的c版本为c90
1.c++能把(已常量赋值的)const变量看作编译期间常数,c没种种功能。
例如:
const int BUFRSIZE = 1024;
char chArray[BUFRSIZE]; //在c++中合法,而在c中非法
所以,如果c程序员想定义编译期间常数,还得乖乖依靠预处理指令:
#define BUFRSIZE1024;
char chArray[BUFRSIZE];
2.c++默认const变量的连接性质是内部的,而c相反,默认外部
例如: const int a = 0; int main(void) {}
上面变量a由于是在函数外定义且没有static修饰,所以c里面毫无疑问应是外部链接,即其他文件的代码能够访问到。
但在c++中,变量a默认是内部连接的,除非你显示加上extern修饰词,否则,其他文件看不到const变量a的
3.c只能允许用常量初始化const外部变量,c++,没有这种限制
例如: int f(void);
const int a = f();//c中非法,而在c++中合法
int main(void) {}