相关疑难解决方法(0)

extern和extern"C"表示变量

我正在编写一个C++共享库供C程序使用.但是,我有一个关于extern和的问题extern "C".

请考虑以下代码

我的头文件是这样的:

#ifdef __cplusplus      
     extern "C" int global;
     extern "C" int addnumbers(int a, int b); 
 #else
      extern int global;
 #endif
Run Code Online (Sandbox Code Playgroud)

这完美无缺; 我只需要申报

int global;
Run Code Online (Sandbox Code Playgroud)

在我的.cpp或我的.c文件中.但是,我不明白的是:

extern "C"extern这里有什么区别?我试着评论出来extern "C" int global并且有效!为什么?

我知道这extern "C"用于制作C链接.这就是我的原因extern "C" int addnumbers(int,int).换句话说,如果我想编写一个将在C程序中使用的C++函数,我会写extern "C".现在,全球变量怎么样 - 我猜这里的情况有所不同?我想C程序使用一个名为C++变量global,但我可以用externextern "C".这是为什么?这对我来说并不直观.

评论:我不认为这是重复的,因为我问的是当你将它用于变量与函数时有什么区别.

c c++ linkage extern-c

5
推荐指数
2
解决办法
3771
查看次数

标签 统计

c ×1

c++ ×1

extern-c ×1

linkage ×1