24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1162  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 272分材料子求调剂 +41 Loy0361 2026-04-10 54/2700 2026-04-14 18:00 by lhj2009
[考研] 085500求调剂材料 +11 易11122 2026-04-09 11/550 2026-04-14 17:59 by lhj2009
[考研] 化工学硕294分,求导师收留 +32 yzyzx 2026-04-12 36/1800 2026-04-14 17:45 by lhj2009
[考研] 一志愿085502,267分求调剂 +19 再忙也要吃饭啊 2026-04-08 20/1000 2026-04-14 16:03 by zs92450
[考研] 求调剂 +12 何气正 2026-04-13 13/650 2026-04-14 14:47 by zs92450
[考研] 085600材料与化工349分求调剂 +16 李木子啊哈哈 2026-04-12 17/850 2026-04-14 09:11 by fenglj492
[考研] 农学0904 312求调剂 +4 Say Never 2026-04-11 4/200 2026-04-14 09:10 by zs92450
[考研] 300分求调剂 (085501机械专硕,本科扬大) +9 xu@841019 2026-04-11 10/500 2026-04-14 08:48 by 木木mumu~
[考研] 291求调剂 +8 关忆北. 2026-04-11 8/400 2026-04-12 09:32 by 逆水乘风
[考研] 086003调剂求助 +21 苏弋万 2026-04-09 22/1100 2026-04-11 20:25 by dongdian1
[考研] 电子信息279求调剂,有书读就行 +8 wwwooden 2026-04-08 11/550 2026-04-11 20:22 by cq2548
[考研] 270求调剂 +14 杨乐369 2026-04-11 14/700 2026-04-11 20:16 by 蓝云思雨
[考研] 085410 273分调剂 +4 X1999 2026-04-09 4/200 2026-04-11 13:05 by pies112
[考研] 288求调剂 +15 代fish 2026-04-09 16/800 2026-04-11 10:26 by wwj2530616
[考研] 22408 352分求调剂0854类 +4 努力的夏末 2026-04-09 4/200 2026-04-11 09:57 by zhq0425
[考研] 0854调剂 +4 长弓傲 2026-04-09 4/200 2026-04-11 09:18 by 猪会飞
[考研] 346,工科0854求调剂,专硕 +7 moser233 2026-04-10 8/400 2026-04-11 08:52 by 猪会飞
[考研] 本科211 工科085400 280分求调剂 可跨专业 +11 LZH(等待调剂中 2026-04-10 11/550 2026-04-11 08:39 by zhq0425
[考研] 材料与化工调剂 +12 否极泰来2026 2026-04-10 13/650 2026-04-11 00:28 by wangjihu
[考研] 二次调剂求老师收留 +3 笑笑袁 2026-04-08 3/150 2026-04-08 23:50 by 醉在风里
信息提示
请填处理意见