1:
在C++中const对默认存储类型有影响。const修饰的全局变量链接性为内部性的,即C++全局const定义就像使用了static说明符一样,这样我们在C++可以在头文件定义const 变量。
但是C语言不行,不能在头文件中定义 ,除非使用static修饰, 否则会报错出现多个定义,C语言中const 修饰的全局变量,跟普通的全局变量使用一样,唯一的区别是const变量不能修改值
结论:在头文件中,C语言中static const 修饰的变量 与 C++语言中单独const修饰的变量效果是一样的
2:
C++想要取消const 全局变量的内部性的,变成共享的,可以使用extern修饰来取消链接的内部性,在这种情况下所有使用该const变量的地方(定义与所有的声明)都要添加extern关键字,且只有一个地方即定义处进行初始化,这样const 变量就成了共享变量。
c语言中const变量没有这种限制,跟正常的全局变量使用方法一样,即定义处可以不使用extern 关键字,也可以使用