【实训5-18】全局变量与全局静态变量
(总分25)


 【实训目的】全局变量和全局静态变量   

【第 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(陈海云) : 返回首页