C++工程中如何在一个文件中调用另一个文件中的变量

一个工程中包含许多的源文件与头文件,我想定义一个变量a,在源文件A.cpp中的一个函数可以为变量a赋值,然后源文件B.cpp中的一个函数使用这个变量,如何才能做到,请教各... 一个工程中包含许多的源文件与头文件,我想定义一个变量a,在源文件A.cpp中的一个函数可以为变量a赋值,然后源文件B.cpp中的一个函数使用这个变量,如何才能做到,请教各位大神!! 展开
 我来答
59分粑粑分享生活
高粉答主

2020-03-25 · 专注生活好物分享,解答日常方方面面的问题
59分粑粑分享生活
采纳数:326 获赞数:119825

向TA提问 私信TA
展开全部

实现的方法和操作步骤如下:

1、首先, C++函数也存储在内存中,因此可以使用指针访问函数地址,如下图所示,然后进入下一步。

2、其次,完成上述步骤后,声明函数指针。该方法类似于函数原型。 以下是函数原型,如下图所示,然后进入下一步。

3、接着,完成上述步骤后,在程序中声明了一个函数指针,指针类型为整数,如下图所示,然后进入下一步。

4、然后,完成上述步骤后,要获取函数的地址,只需使用函数名称即可,如下图凳银所示,然后进入下一步。

5、随橘银后,完成上述步骤后,使用函数指针来调用函数。与普通指针类似,可以使用(* fq)间接调用所指向的函数,如下图所示,然后进入下一步。

6、最后,完成上述步骤后,在C++中,还可以使用函数指针,如函数名称,如下图所示。枣伍宴这样,问题就解决了。

time大叔VS萝莉
2019-04-22
知道答主
回答量:3
采纳率:0%
帮助的人:2228
展开全部

当项目中只有两个文件时明岁:test_1.cpptest_2.cpp

test_1.cpp:

static int g_nNum;//在此文件中定义一个全局,但局部可见的变量,也就是static变量
                  //static看下最下方注释

该文件只需这一句代码,不需要其他代码,当然,你也可以添加其他代码

test_2.cpp:

//包含test_1.cpp的头,由于我们需要用到该文件的全局变量
#include "test_1.cpp"

int main()
{
g_nNum = 15;//使用该变量,当然,你也可一在赋值后输出或拿该变量做算法运算
return 0;
}

注:这里涉及到static,static修辞一个局部变量时,该变量的生命周期是全局的,但可见性使局部的,且激孝睁工程中该值慎厅唯一;修辞全局变量时,该变量生命周期全局的,可见性也是全局的,且工程中该值唯一;当修辞函数时,该函数全局可见;

static关键字网上有很多大神讲解过,我说的可能不是很详细,可以自己去查一下。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mysatans
推荐于2017-11-25 · 超过18用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:43.6万
展开全部
个人觉得famince的使用的方法不太好。
1. 假如你在A.CPP中烂耐好有亩隐个变量的定义
int a = 0;
2. 在饥铅B.cpp中引用,需要添加
extern int a;
这样你就可以使用了。extern的作用是扩展a的作用域。
更多追问追答
追问
extern只是扩展了变量的作用域,换种说法就是省略了重新定义变量,但是变量中的值似乎不会保存吧
追答
1. 这里还不能说是省略了重新定义变量,因为定义只能又一次,再次定义的话,会爆重复定义的错误,一个全局的变量的作用域是从定义处到本文件的结尾部分,所以要在其他文件中引用,需要用extern进行扩展。
2. “变量中的值似乎不会保存吧”,没看懂,不管你用不用extern,变量都是一个,所有对他的操作,都是有效的。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
famince
2012-07-15
知道答主
回答量:28
采纳率:100%
帮助的人:3.6万
展开全部
1:在a.h中:
extern声明该变量,
2:在a.cpp中袜辩(包告敏缺含a.h头文件):
初始化,以及修改变量
3:在b.cpp中包含a.h头文件,拿者就可以使用,以此类推
追问
在a.h中就写一句话:extern int a就可以吗?
然后a.cpp和b.cpp中包含了头文件后,还用再定义吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
春夏秋冬
2012-07-15 · 知道合伙人教育行家
春夏秋冬
知道合伙人教育行家
采纳数:490 获赞数:1419

向TA提问 私信TA
展开全部
在B.cpp眉头位置加入:#include "a.h",之后就可以在B.Cpp中调用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式