C++/C的项目里怎么共享“全局变量”呢?

[情况]最近用OpenCV的库,写一个“轮廓”识别的程序,遇到一个关于C/C++的小问题:
[问题]用visual studio 2012 建一个C++的空项目,然后建一个包含main()函数的cpp文件,在这个文件的main()函数的外面声明10个全局变量,然后把这个项目的其他函数都分别存放成一个单独的cpp文件,再建立一个头文件(.h),其中包含每个函数的声明,但问题出来啦:这些单独的函数都要用到那10个全局变量,但如果这些函数和main()函数不在同一个文件下则无法用这10个全局变量.......
这该怎么办呢?
-------------------------------------------------------------------------------
非常感谢!

第1个回答  2012-12-07
前面加extern
第2个回答  2012-12-07
extern声明

C++\/C的项目里怎么共享“全局变量”呢?
在a.c中,定义全局变量gvar,类型为int,初始化值为3.int gvar = 3;在同一个项目的b.c中,声明gvar,同时定义一个函数,使gvar自加,并打印gvar的值:extern int gvar;\/\/加extern声明可以使读到代码的人知道,这是一个外部文件定义的全局变量,但在C\/C++中,该关键字并非强制,不加也不会出错。

如何在C++内多个CPP共享同一个变量
1.全局变量的定义和普通变量的定义相同,只是在别的cpp文件中使用前需要用extern修饰符声明。例如:主文件中定义 int global = 0;别的文件里面用 extern int global;申明一下就可以用了。2.extern可置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量或函数时,在其它模...

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

问各位大侠C++中参数在不同的cpp文件里怎么传递的问题。谢谢了_百度...
最简单的方法是定义一个duquxml.h头文件 里面定义一个 extern int a;然后在duquxml.cpp引用这个头文件,定义int a。而在myxml.cpp要用的话就extern int a; \/\/全局变量哦。还有你说的构造函数 是怎么样的 能不能贴出来看下啊。给个例子吧 在duquxml.cpp文件中 全局变量 定义 int a;在duqu...

全局变量怎么定义
用MFC制作的工程由很多文件构成,它不能象一般C++程序那样随意在类外定义全局变量,在这里要想定义能被工程内多个文件共享的全局变量和函数必须用一些特殊方法才行。实际上有多种方法可以实现,这里只介绍两种方法。一、在应用程序类中定义 用MFC生成的工程中都有一个名为CxxxApp的类,它派生于CWinApp类...

C++头文件里声明的变量如何能让所有.cpp文件都可以对它进行修改值,而且...
一下即可以了 extern C\/C++关键字 修饰变量,表示引用另一文件中的变量。extern变量:用关键字extern说明的变量成为外部变量。一个变量被说明为外部变量,其含义是告诉系统不必为其按一般变量那样分配内存,该变量已在这一局部的外边定义。外部变量一般用于由多个文件组成的程序中,有些变量在多个文件中被...

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;}

Visual C++ 各种字母的标识含义
全局变量 g_常量 c_c++类成员变量 m_静态变量 s_类型部分 指针 p 函数 fn 无效 v 句柄 h 长整型 l 布尔 b 浮点型(有时也指文件)f 双字 dw 字符串 sz 短整型 n 双精度浮点 d 计数 c(通常用cnt)字符 ch(通常用c)整型 i(通常用n)字节 by 字 w 实型 r 无符号 u 描述部分 ...

C\/C++里面的全局变量是不是每运行一下,那个值要变?
首先全局变量的值不加以认为改动,不会改变。其次全局变量的值在子函数中改动也会影响到主函数。最后在以个函数中,重新定义了一个与全局变量的变量名相同的变量时,会在这个函数里蔽屏掉全局变量,一出这个函数就恢复正常。int a=1;int n(int p){p=12;}main(){printf("%d\\n",a);a=n(a);...

c\/c++语言存储类型是不是不用写出来的
首先要来理解一下可执行文件加载进内存后形成的进程在内存中的结构,代码区:存放CPU执行的机器指令,代码区是可共享,并且是只读的。数据区:存放已初始化的全局变量、静态变量(全局和局部)、常量数据。BBS区:存放的是未初始化的全局变量和静态变量。栈区:由编译器自动分配释放,存放函数的参数值、...

相似回答