const在c与c++中用法区别

来源:互联网 发布:电信宽带发现代理软件 编辑:程序博客网 时间:2024/06/05 16:07

(转)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) {}

 

原创粉丝点击