C++第3讲多文件程序和作用域_第1页
C++第3讲多文件程序和作用域_第2页
C++第3讲多文件程序和作用域_第3页
C++第3讲多文件程序和作用域_第4页
C++第3讲多文件程序和作用域_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C+第3讲多文件程序和作用域 1 C+ 程序设计程序设计 第第3讲讲 程序结构程序结构 C+第3讲多文件程序和作用域 2 程序结构程序结构 1、用、用VC建立多文件的工程建立多文件的工程 2、多文件结构的编译链接、多文件结构的编译链接 3、外部存储类型、外部存储类型 4、静态存储类型、静态存储类型 5、作用域与可见性、作用域与可见性 C+第3讲多文件程序和作用域 3 1、用、用VC建立多文件的工程建立多文件的工程 C+第3讲多文件程序和作用域 4 C+第3讲多文件程序和作用域 5 C+第3讲多文件程序和作用域 6 向工程中添加文件向工程中添加文件 C+第3讲多文件程序和作用域 7 C+第3讲多

2、文件程序和作用域 8 C+第3讲多文件程序和作用域 9 C+第3讲多文件程序和作用域 10 C+第3讲多文件程序和作用域 11 程序结构程序结构 1、用、用VC建立多文件的工程建立多文件的工程 2、多文件结构的编译链接、多文件结构的编译链接 3、外部存储类型、外部存储类型 4、静态存储类型、静态存储类型 5、作用域与可见性、作用域与可见性 C+第3讲多文件程序和作用域 12 1、一个、一个C+源文件如何生成源文件如何生成exe可执行文件?可执行文件? 一个一个C+ 源文件源文件 翻译临时翻译临时 文件文件 目标文件目标文件 obj exe可执可执 行文件行文件 预处理预处理编译编译连接连接 C

3、+第3讲多文件程序和作用域 13 2、多个、多个C+源文件如何生成一个源文件如何生成一个exe可执行文件?可执行文件? 一个一个C+ 源文件源文件 翻译临时翻译临时 文件文件 目标文件目标文件 obj exe可执可执 行文件行文件 预处理预处理编译编译 连接连接 一个一个C+ 源文件源文件 翻译临时翻译临时 文件文件 目标文件目标文件 obj 预处理预处理编译编译 C+第3讲多文件程序和作用域 14 C+第3讲多文件程序和作用域 15 C+第3讲多文件程序和作用域 16 C+第3讲多文件程序和作用域 17 C+第3讲多文件程序和作用域 18 程序结构程序结构 1、用、用VC建立多文件的工程建立

4、多文件的工程 2、多文件结构的编译链接、多文件结构的编译链接 3、外部存储类型、外部存储类型 4、静态存储类型、静态存储类型 5、作用域与可见性、作用域与可见性 C+第3讲多文件程序和作用域 19 3、外部存储类型、外部存储类型 一个文件如何使用另一个文件中的变量、函数?一个文件如何使用另一个文件中的变量、函数? C+第3讲多文件程序和作用域 20 C+第3讲多文件程序和作用域 21 C+第3讲多文件程序和作用域 22 C+第3讲多文件程序和作用域 23 C+第3讲多文件程序和作用域 24 int a = 199; 1.cpp文件文件 #include extern int a; void f

5、() coutf:a; coutendl; 3.cpp文件文件 #include extern int a; extern void f(); int main() coutmain:a; coutendl; f(); 2.cpp文件文件 定义变量定义变量a 编译器遇到编译器遇到extern int a;它会在这三个文件中找它会在这三个文件中找 变量变量a的定义,在的定义,在1.cpp文件中找到了。文件中找到了。 C+第3讲多文件程序和作用域 25 程序结构程序结构 1、用、用VC建立多文件的工程建立多文件的工程 2、多文件结构的编译链接、多文件结构的编译链接 3、外部存储类型、外部存储类型

6、4、静态存储类型、静态存储类型 5、作用域与可见性、作用域与可见性 C+第3讲多文件程序和作用域 26 4、静态存储类型、静态存储类型 静态局部变量静态局部变量 静态全局变量静态全局变量 静态函数静态函数 C+第3讲多文件程序和作用域 27 C+第3讲多文件程序和作用域 28 C+第3讲多文件程序和作用域 29 C+第3讲多文件程序和作用域 30 静态函数有两个效果:静态函数有两个效果: 1、它允许其他源文件建立使用同名的函数,而不相互冲突。、它允许其他源文件建立使用同名的函数,而不相互冲突。 2、声明为静态的函数不能被其他源文件所调用,因为它的、声明为静态的函数不能被其他源文件所调用,因为它

7、的 名字不能得到。名字不能得到。 在文件作用域下声明的在文件作用域下声明的inline函数默认为函数默认为static。 在文件作用域下声明的在文件作用域下声明的const的常量默认为的常量默认为static。 它们如果加上它们如果加上extern,则为外部的。,则为外部的。 C+第3讲多文件程序和作用域 31 程序结构程序结构 1、用、用VC建立多文件的工程建立多文件的工程 2、多文件结构的编译链接、多文件结构的编译链接 3、外部存储类型、外部存储类型 4、静态存储类型、静态存储类型 5、作用域与可见性、作用域与可见性 C+第3讲多文件程序和作用域 32 5、作用域、作用域 作用域是标识符在

8、程序中有效地范围。作用域是标识符在程序中有效地范围。 局部作用域局部作用域 函数作用域函数作用域 函数原型作用域函数原型作用域 文件作用域文件作用域 类作用域类作用域 C+第3讲多文件程序和作用域 33 局部作用域局部作用域 有错吗?有错吗? C+第3讲多文件程序和作用域 34 C+第3讲多文件程序和作用域 35 函数作用域函数作用域 标号是唯一具有函数作用域的标识符,标号是唯一具有函数作用域的标识符,goto语句使用标号。语句使用标号。 标号声明使得该标识符在一个函数内的任何位置均可以被使用。标号声明使得该标识符在一个函数内的任何位置均可以被使用。 局部变量不具有函数作用域。局部变量不具有函

9、数作用域。 void f() goto LL; coutABC; LL: coutout here; void f() int i=0; LL: coutout here; if(i+=0) goto LL; C+第3讲多文件程序和作用域 36 goto和和switch不应使控制从一个声明的作用域之外跳到该声明不应使控制从一个声明的作用域之外跳到该声明 的作用域内,因为这种跳转越过了变量的声明语句,使变量不能被的作用域内,因为这种跳转越过了变量的声明语句,使变量不能被 初始化。初始化。 C+第3讲多文件程序和作用域 37 函数原型作用域函数原型作用域 函数原型声明(不是函数定义)中所作的参数声

10、明函数原型声明(不是函数定义)中所作的参数声明 在该作用域中。在该作用域中。 这个作用域开始于函数原型声明的左括号,结束于这个作用域开始于函数原型声明的左括号,结束于 函数原型声明的右括号。函数原型声明的右括号。 C+第3讲多文件程序和作用域 38 C+第3讲多文件程序和作用域 39 文件作用域文件作用域 文件作用域是在所有函数定义之外说明的,其作用域从说文件作用域是在所有函数定义之外说明的,其作用域从说 明点开始,一直延伸到源文件结束。明点开始,一直延伸到源文件结束。 文件作用域即为静态全局的。文件作用域即为静态全局的。 C+第3讲多文件程序和作用域 40 C+第3讲多文件程序和作用域 41 C+第3讲多文件程序和作用域 42 5、可见性、可见性 -可见性与作用域是一致的。可见性与作用域是一致的。 作用域指的是标识符有效的范围。作用域指的是标识符有效的范围。 可见性是分析在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论