在c中,const是外部链接,而在c++中是内部链接。
在c++中,当定义一个常量:const int i = 0;时,默认是不分配内存空间的,如果只是用来做常量转换,那编译器只是在代码中展开变量,但是如果当取常量地址时或者显示声明为外部链接:extern const int i = 0;,则编译器为其分配内存空间。
所以在c中,在一个文件定义了常量:const int i = 0;,那在另一个文件中,extern这个变量是可以的,因为是外部链接,而在c++中是不可以的,只有在包含该文件的地方才可以使用。