24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1150  |  回复: 6

edisondanny

金虫 (小有名气)

[求助] C++全局变量的设置

最近在写一个程序,由于调用的函数较多,就用了几个cpp文件和h文件,但是由于学艺不精,不知道如何设置全局变量,以便能在这几个cpp文件中通用。求解答,谢谢
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yalefield

金虫 (文坛精英)

老汉一枚

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
edisondanny: 金币+5, ★★★很有帮助 2012-11-22 23:05:21
在一个.cpp(如a.cpp)中,在不属于任何类的地方,定义这个变量:
int g_myvar;
在一个.h文件中,如myglobal.h中,声明这个变量是extern的:
extern int g_myvar;

于是,在任何其他.cpp中,如x.cpp中:
(1)
#include "myglobal.h"
(2)
int someclass::somefunction()
{
    m_somevar = g_myvar * 3.141592653589793;
    return m_somevar;
}
2楼2012-11-20 11:07:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

edisondanny

金虫 (小有名气)

引用回帖:
2楼: Originally posted by yalefield at 2012-11-20 11:07:14
在一个.cpp(如a.cpp)中,在不属于任何类的地方,定义这个变量:
int g_myvar;
在一个.h文件中,如myglobal.h中,声明这个变量是extern的:
extern int g_myvar;

于是,在任何其他.cpp中,如x.cpp中:
(1) ...

我先试试看。谢了
3楼2012-11-20 12:43:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
edisondanny: 金币+5, ★★★很有帮助 2012-11-22 23:05:32
全局变量在一处定义,其他需要使用的文件直接'extern 变量名'就行
还有个办法就是把这些变量弄进一个结构体,然后修改需要使用的函数定义,把这个结构体当做参数传递进去
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
4楼2012-11-20 17:24:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

darlingxxe

铜虫 (小有名气)

2楼说的可以,用extern来定义,然后用头文件包括进来
感恩祝好,爱我所爱
5楼2012-11-21 12:33:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

edisondanny

金虫 (小有名气)

引用回帖:
2楼: Originally posted by yalefield at 2012-11-20 11:07:14
在一个.cpp(如a.cpp)中,在不属于任何类的地方,定义这个变量:
int g_myvar;
在一个.h文件中,如myglobal.h中,声明这个变量是extern的:
extern int g_myvar;

于是,在任何其他.cpp中,如x.cpp中:
(1) ...

你好,还想请问一下,如果在这里面我想设置常数,也是在整个项目中都能用,该怎么设置呢。比如定义很多个数组,数组的维度都是IMAX=70 ,这些数组都是全局变量,我的IMAX该在哪个地方定义?谢谢
6楼2012-11-22 10:14:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yalefield

金虫 (文坛精英)

老汉一枚

【答案】应助回帖

引用回帖:
6楼: Originally posted by edisondanny at 2012-11-22 10:14:28
你好,还想请问一下,如果在这里面我想设置常数,也是在整个项目中都能用,该怎么设置呢。比如定义很多个数组,数组的维度都是IMAX=70 ,这些数组都是全局变量,我的IMAX该在哪个地方定义?谢谢...

那就在一个a.h文件里,写
#define IMAX 70
然后,所有的.cpp都include这个a.h
注意:如果在其他.h中也用到了IMAX,那就要保证在每个include的地方,都要先include这个a.h。
7楼2012-11-22 12:00:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 edisondanny 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿双非085400电子信息344 求调剂,对材料和化学方向也感兴趣 +10 无情的小羊 2026-04-09 11/550 2026-04-12 12:30 by wp06
[考研] 280求调剂 +13 wzzz王 2026-04-09 13/650 2026-04-12 00:31 by 勇攀高峰0126
[考研] 调剂求助 +6 果然有我 2026-04-11 7/350 2026-04-11 16:22 by 明月此时有
[考研] 调剂 +5 文道星台 2026-04-11 5/250 2026-04-11 15:01 by 凯凯要变帅
[考研] 22408 352分求调剂 +4 努力的夏末 2026-04-09 4/200 2026-04-11 10:42 by maddjdld
[考研] 0854求调剂 +7 assdll 2026-04-05 7/350 2026-04-11 10:34 by Delta2012
[考研] 农学0904 312求调剂 +6 Say Never 2026-04-10 6/300 2026-04-11 10:33 by wwj2530616
[考研] 工科273调剂 +6 X1999 2026-04-09 7/350 2026-04-11 10:23 by zhq0425
[考研] 农业管理302分求调剂 +3 xuening1 2026-04-10 3/150 2026-04-11 10:18 by zhq0425
[考研] 化学工程与技术324调剂 +23 孙常华 2026-04-09 25/1250 2026-04-11 00:07 by 骑牛渡寒江
[考研] 调剂 化学 307 +21 73372112 2026-04-09 23/1150 2026-04-10 23:53 by wj165256
[考研] 调剂 +12 卷卷卷心菜_ 2026-04-09 13/650 2026-04-10 22:36 by Ftglcn90
[考研] 0856专硕求调剂 希望是a区院校 +21 好好休息好不好 2026-04-09 24/1200 2026-04-10 16:58 by luoyongfeng
[考研] 本9 一志愿西工大085601 324求调剂 +5 wysyjs25 2026-04-10 5/250 2026-04-10 16:57 by luoyongfeng
[考研] 0702物理学学硕299求调剂 +6 祁柒连 2026-04-06 6/300 2026-04-10 11:10 by Roomoo
[考研] 材料调剂 +5 hzhahg 2026-04-06 5/250 2026-04-10 10:10 by may_新宇
[考研] 08600生物与医药-327 +10 18755400796 2026-04-05 10/500 2026-04-10 08:14 by kangsm
[考研] 274求调剂 +5 山阿蔓 2026-04-07 5/250 2026-04-09 15:28 by 18828373951
[考研] 0703化学调剂 348分 +14 唉我超真没招了 2026-04-06 15/750 2026-04-08 19:16 by 我减肥1
[考研] 331求调剂 +5 张元一 2026-04-07 6/300 2026-04-07 22:13 by hemengdong
信息提示
请填处理意见