C文件怎么调用C++文件中的全局变量

atbm886x.obj : error LNK2001: unresolved external symbol _i2c
Debug/AutoProduce.exe : fatal error LNK1120: 1 unresolved externals
现在报这个错误。应该是我在atbm886x.c中调用了另一个C++文件中的I2C导致的,求大神解决

c++那边全局变量前加 extern "C",不然C和C++符号不同不能互相访问。
例如这样:
extern "C" int i2c;
int类型只是例子
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-10
在atbm886x.c中定义一下:extern int i2c;追问

已经声明过了,应该是C 和 C++编译器编译出来的变量名不一致引起的吧,但具体忘记是在哪加extern"C"了

第2个回答  2014-12-12
要使用extern c就可以了
第3个回答  2014-12-10
在C文件里包含以下C++那个文件

C++\/C的项目里怎么共享“全局变量”呢?
extern int gvar;\/\/加extern声明可以使读到代码的人知道,这是一个外部文件定义的全局变量,但在C\/C++中,该关键字并非强制,不加也不会出错。void func(void){ gvar ++;\/\/gvar自加,也就是改变值的操作。 printf("%d\\n", gvar);\/\/输出gvar,也就是引用其值的操作。 \/\/以上两个操...

vc中如何定义全局变量
在Visual C++(VC)中定义全局变量,可以将其放置在任意文件中,但需确保不在函数内部定义。这样做允许在程序的不同部分访问和使用该变量。为了在其他文件中访问全局变量,可以在定义变量的文件中使用`extern`关键字进行声明,表示这个变量在其他位置定义。或者,在App类中声明一个公有成员变量,确保所有类都...

C++头文件里声明的变量如何能让所有.cpp文件都可以对它进行修改值,而且...
如果要在C++程序中引用C程序中的变量,要在extern后加"C"。在appmodul.cpp(MFC核心头文件)中有一个例子extern "C" int WINAPI,引用了crtexe.c里的WINAPI变量。常用的 extern "C" 是把导出函数声明为C编译。由于C++编译器在编译的时候会造成其函数名的该变,在其他应用程序中导致函数不可调用,而...

C++中当未命名空间跟全局变量在一起的时候,怎么调用未命名空间里的变量...
直接用不就行了?include<iostream> using namespace std;define OK 1 define ERROR 0 int i = 10;namespace mm{ int i = 5;} int main(){ cout<<mm::i<<endl;cout<<i<<endl;return OK;}

...同名的变量,怎么在函数内部引用该同名全局变量?
引用可见性范围内的,作用域范围最小的变量,即:int x;void f(){{int x;x=1;\/\/引用局部变量x::x=2;\/\/引用全局变来那个x}x=3;\/\/引用全局变量x}

c++中类的对象和成员变量的区别
C语言的变量可以分成两种级别:全局变量和局部变量 全局变量,在该变量之后定义的函数都可以访问 局部变量,只能在定义的函数中访问 而C++中多出了成员变量,成员变量通常是私有。成员变量依附于对象存在,有了对象,成员变量才有内存 而成员变量的可以被本类的所有成员函数直接访问的。

一个C++工程中不同文件之间的函数如何互相调用?
在2.cpp写 extern int a;(在全局范围写就可以了)之后就可以用a的值了。如果类型不是int,请自行修改。对于问题补充:增加一个与a同类型的全局变量,把a赋值给它,然后用上述方法。或者增加一个a的指针类型的全局变量,把a的地址赋值给它,然后用上述方法。

如何在C++中设置全局变量?
1、首先,定义一个实现加法运算自定义函数。2、接着,定义一个实现乘法运算的自定义函数。3、最后,在主函数中实现程序的运算。4、定义在函数外部没有被花括号括起来的变量称为全局变量,全局变量的作用域从变量定义的位置开始一直到文件结束。5、如果在一个程序中多个函数都要对同一个变量进行处理,...

c语言工程里其它文件引用全局变量?
\/\/1.c 中定义一个变量g_aint g_a = 100;\/\/2.c 中定义一个函数输出g_a#include <stdio.h>extern int g_a; \/\/这里需要用extern说明g_a是一个外部全局变量void f() { printf("%d\\n", g_a);}\/\/3.c main函数中调用f()void f(); \/\/声明函数f()int main(){ f();} ...

C\/C++怎么在某个函数中声明或定义全局变量?全局变量有没有这样使用的...
全局变量的定义只能在函数外部,不能在函数内部。当要使用其他文件里的定义的全局变量时,可以用关键字extern,格式是 [extern 类型 变量名;]希望对你有帮助。

相似回答