|
【实训目的】全局变量和全局静态变量
【第 1 步】实训内容介绍
实训内容介绍
1. global.cpp文件
2. code1.cpp文件
3. cpp5code.cpp文件
4. 实训结束
【Jitor 校验第 1 步】我已阅读实训内容介绍 // 送分题。直接点击。
【第 2 步】global.cpp文件
1、在项目 cpp5 中创建名为 global 的源代码文件,如果项目不存在,则先创建项目,然后创建源代码文件。
2、将下述代码复制到 global 中:
static int gCount; // 定义全局静态变量,与前一实训的差别是加上static关键字
【Jitor 校验第 2 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。
【第 3 步】code1.cpp文件
1、在项目 cpp5 中创建名为 code1 的源代码文件,如果项目不存在,则先创建项目,然后创建源代码文件。
2、将下述代码复制到 code1 中:
extern int gCount; // 引用global.cpp文件中的全局变量作为外部变量
void function1(void){
gCount++;
}
【Jitor 校验第 3 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。
【第 4 步】cpp5code.cpp文件
1、在项目 cpp5 中创建名为 cpp5code 的源代码文件,如果项目不存在,则先创建项目,然后创建源代码文件。
2、将下述代码复制到 cpp5code 中:
#include <iostream.h>
extern int gCount; // 引用global.cpp文件中的全局变量作为外部变量
void function1(void);
void main(void) {
function1();
function1();
cout << "gCount={" << gCount << "}\n";
}
这时出现如下的编译错误,原因是在code1.cpp和cpp5code.cpp文件中无法访问global.cpp文件中的全局静态变量。 运行结果如下:
cpp5code.cpp
global.cpp
Linking...
code1.obj : error LNK2001: unresolved external symbol "int gCount" (?gCount@@3HA)
cpp5code.obj : error LNK2001: unresolved external symbol "int gCount" (?gCount@@3HA)
Debug/cyy4.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
cyy4.exe - 3 error(s), 0 warning(s)
【Jitor 校验第 4 步】 // 复制上面的代码到 VC++ 6.0 ,保存并运行。点击。
【第 5 步】实训总结
本次实训学习了全局变量和全局静态变量。总结如下:
1. 全局变量和全局静态变量都是静态的(从变量值是否长期有效上看)
2. 全局静态变量的不同是只能在一个文件中有效(作用域只在一个文件中)
【Jitor 校验第 5 步】我已阅读实训总结 // 送分题。直接点击。
仍有疑问 ? 联系QQ 9429444(陈海云) : 返回首页 |