在C和C++中,如果我想在其他编译单元中使用全局变量,我将定义以下变量:
int g_myVal = 0;这将为int分配存储空间。
然后在头文件中声明变量:
extern int g_myVal;这将通知编译器所述符号存在于其他编译单元中。然后由链接器来解析符号。
但是,如果我想让变量可用"C“链接,我必须定义变量(分配存储)如下:
extern "C" int g_myVal = 0;那么,如何区分如何分配存储和只通知编译器在另一个编译单元中存在所述符号?
发布于 2014-01-09 17:01:39
在本例中,设置初始化器= 0将声明更改为定义,这就是此处分配存储的原因。(即使只是普通的extern,也会发生同样的情况。)
https://stackoverflow.com/questions/21026264
复制相似问题