VC++中全局变量的问题(转)

全局变量一般这样定义:
1。在一类的.cpp中定义 int myInt;
然后再在要用到的地方的.cpp里extern int myInt;这样就可以用了。

2。在stdafx.cpp中加入:
int myInt;
然后在stdafx.h中加入:
extern int myInt
这样定义以后无论在什么文件中都是可见的.

3。比较规范的是,先定义一个Glbs.h,把所有的全局变量原始定义放进去。然后定义一个Externs.h,把你先前定义在Glbs.h中的变量都加上extern。注意:如果你在Glbs.h中设置了初值,那么在Externs.h中就不要加值了。然后调用时,第一次调用的#i nclude <Glbs.h>,以后调用的#i nclude <Externs.h>

另:

问:如何在VC++中使用全局变量,以使文档中的所有类都能访问。
  答:把该变量放到该应用程序类的头文件中的attribute处。然后,在程序的任何地方,你都可以用下面的方法来访问该变量:
  CMyApp *app=(CMyApp*)AfxGet-App();
  app->MyGlobalVariable=…
  用这个方法,不但可以定义全局变量,也可以定义全局对象。
  例如:
  MyClass MyObject;
  CMyApp*app=(CMyApp*)AfxGet-App();
  app->MyObject.MyFunction();

VC中使用全局变量的2种办法及防错措施  

1. 对于全局变量存在和函数一样的问题,为了在其他CPP文件中能够访问这些变量,必须在主文件的H文件中加上extern声明,格式如下:
extern varibletype var; (声明)
在主文件的CPP文件中定义
varibletype var; (定义)
例子:

  • 1
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是VC++6.0版本的俄罗斯方块代码的一部分: ```c++ #include <stdio.h> #include <conio.h> #include <windows.h> /*******定义全局变量*******/ int i,j,Temp,Temp1,Temp2; //temp,temp1,temp2用于记住和换方块变量的值 //标记游戏屏幕的图案:2,1,0分别表示该位置为游戏边框、方块、无图案;初始化为无图案 int a\[80\]\[80\]={0}; int b\[4\]; //标记4个"口"方块:1表示有方块,0表示无方块 struct Tetris //声明俄罗斯方块的结构体 { int x; //心方块的x轴坐标 int y; //心方块的y轴坐标 int flag; //标记方块类型的序号 int next; //下一个俄罗斯方块类型的序号 int speed; //俄罗斯方块移动的速度 int number; //产生俄罗斯方块的个数 int score; //游戏的分数 int level; //游戏的等级 }; HANDLE hOut; //控制台句柄 /*******函数声明*******/ int color(int c); //设置文字颜色 void gotoxy(int x, int y); //光标移到指定位置 void DrwaGameframe(); //绘制游戏边框 void Flag(struct Tetris *); //随机产生方块类型的序号 void MakeTetris(struct Tetris *); //制作俄罗斯方块 void PrintTetris(struct Tetris *); //打印俄罗斯方块 void CleanTetris(struct Tetris *); //清除俄罗斯方块的痕迹 int ifMove(struct Tetris *); //判断是否能移动,返回值为1,能移动,否则,不能移动 void Del_Fullline(struct Tetris *); //判断是否满行,并删除满行的俄罗斯方块 void Gameplay(); //开始游戏 void regulation(); //游戏规则 void explation(); //按键说明 void welcom(); //欢迎界面 void Replay(struct Tetris * tetris); //重新开始游戏 void title(); //欢迎界面上方的标题 void flower(); //欢迎界面上的字符装饰花 void close(); //关闭游戏。 int main() { welcom(); //欢迎界面 return 0; } ``` 这段代码是VC++6.0版本的俄罗斯方块游戏的一部分,包括了全局变量的定义和一些函数的声明。你可以根据需要继续完善和实现其他函数来完成整个游戏的功能。 #### 引用[.reference_title] - *1* *3* [基于VC++6.0开发俄罗斯方块(一)](https://blog.csdn.net/weixin_44566643/article/details/96365759)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [基于VC++6.0开发俄罗斯方块(三)](https://blog.csdn.net/weixin_44566643/article/details/96422094)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值