C++ const

作者: LoveSkye | 来源:发表于2019-10-22 10:12 被阅读0次

C 和 C++ 中全局 const 变量的作用域相同,都是当前文件,不同的是它们的可见范围:
C 语言中 const 全局变量的可见范围是整个程序,在其他文件中使用extern 声明后就可以使用;而 C++ 中 const全局变量的可见范围仅限于当前文件,在其他文件中不可见,所以它可以定义在头文件中,多次引入后也不会出错

如果你使用的是 GCC,那么可以通过添加extern关键字来增大 C++ 全局 const 变量的可见范围,如下所示:

extern const int n = 10;

这样n的可见范围就变成了整个程序,在其他文件中使用 extern 声明后就可以使用了。不过这种方式只适用于 GCC,不适用于 VS/VC。

很多 C++ 教程在对比 const#define的优缺点时提到,#define 定义的常量仅仅是字符串的替换,不会进行类型检查,而 const定义的常量是有类型的,编译器会进行类型检查,相对来说比 #define更安全,所以鼓励大家使用 const代替 #define

进阶理解:const T vs. T const ——Dan Saks

相关文章

网友评论

      本文标题:C++ const

      本文链接:https://www.haomeiwen.com/subject/tiaxvctx.html