收藏 分销(赏)

程序文件和预处理指令PPT课件.ppt

上传人:可**** 文档编号:683969 上传时间:2024-01-31 格式:PPT 页数:12 大小:307KB
下载 相关 举报
程序文件和预处理指令PPT课件.ppt_第1页
第1页 / 共12页
程序文件和预处理指令PPT课件.ppt_第2页
第2页 / 共12页
程序文件和预处理指令PPT课件.ppt_第3页
第3页 / 共12页
程序文件和预处理指令PPT课件.ppt_第4页
第4页 / 共12页
程序文件和预处理指令PPT课件.ppt_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、 C+程序是从main函数开始运行,其间可能调用若干函数,这些函数又调用了另外的函数。函数的层层调用构成了C+程序的结构。然而,当多个人合作开发时,就会涉及到程序文件的组合。在Visual C+2008中,一个解决方案可以容纳多个程序文件,这些程序文件共同构成了一个完整的程序。本章将介绍多个程序文件之间如何交互,以及如何管理和控制程序文件的内容。l 头文件的使用l 外部名称l 命名空间l 预处理指令1.C+程序一般由多个文件组成。C+程序包含两大类文件:头文件 这种文件一般用文件扩展名.h来标识。这些文件包含类型定义和其他用于程序中一个或多个源文件的代码。源文件 其扩展名为.cpp,也可以是.

2、c。这种文件包含要编译成机器指令的代码,如函数的字义。需要的头文件通过预编译指令#include添加到源文件中。头文件和源文件之间的主要区别是它们的使用方式不同。根据约定,在头文件可以包含下面的内容:l 类型声明l 函数声明l 常量定义l 数据声明l 预处理指令l 注释 但头文件不宜包含:l 函数定义l 数据定义 每个源文件必须包含它需要的头文件。在编译程序时,只编译源文件,根据#include指令将添加程序需要的头文件内容。编译的每个源文件都会生成一个对象文件,它是一个扩展名为.obj的二进制输出文件。obj文件由链接程序组合成一个可执行的程序。2.关键字extern可以置于变量或者函数前,

3、以标识变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他文件中寻找其定义。如果声明的外部变量一次也没定义,或者外部变量多次定义,或者类型不同,都会造成直接或间接的错误。这一点需要读者注意。3.在ANSI C+标准库中使用的所有名称都是在std命名空间中定义的。这意味着,在这个标准库中使用的所有名称都有一个附加的限定名std,例如,cout其实是std:cout。对于一个大型的程序,除了用函数去堆积程序外,还需要程序员之间互相协调。对于不在同一台计算机上的多个程序员,在开发过程中名称的冲突,共享名称的使用都是需要解决的问题,这样我们就需要定义自己的命名空间。4.在没有定义命名空间

4、时,就默认使用全局命名空间。全局命名空间中的所有名称就声明时的名称,没有附加命名空间名称。对于小型的程序,可以在全局命名空间中定义名称,这不会遇到任何问题。对于较大的应用程序,出现命名冲突的机会大大增加,此时就应该使用命名空间。使用关键字namespace可以声明一个命名空间。5.在声明命名空间时,如果未指定名称,但这并味着命名空间就没有名称。下面的代码声明一个未指定名称的命名空间:namespace /名称声明 这个语句创建一个命名空间,它有一个由编译器生成的内部名称。在一个文件中只能有一个未指定名称的命令空间,如果声明其他未指定名称的命名空间时,则会认它们位于同一个命名空间中。6.预处理指

5、令本身不是C+语言的组成部分,不能直接对它们进行编译,它们是在C+程序代码被编译为机器指令之前执行。预处理指令的作用是根据包含的源文件中的指令,使源代码正确进行编译阶段。所有的预处理指令都是以符号“#”开头,以便与C+语句区分开。最常见的预处理指令包括:文件包含,条件编译、宏定义、#error和#pragma指令。7.#include指令提示预编译将包含的头文件内容附加到源文件中,以参加编译。例如:#include 这个语句将iostream的内容提取到程序中。如果头文件是C+系统提供的,则用尖括号把文件括起来。如果是自定义的头文件,则文件名要放在双引号中,例如:#include myHead

6、.h“两者之间的差别主要是在编译器的路径搜索顺序上。在安装C+编译器时,已经将C+系统资源的默认路径设置好了。对于用了尖括号的头文件,编译器直接就到这个默认的路径上搜索其头文件。8.在C语言中,宏定义#define常用于定义符号常量、函数功能、重新命名、字符串的拼接等,但在C+中宏定义#define主要用于条件编译指令中,因此我们还需要对宏定义#define有所了解。最简单的宏定义是指定一系列字符,以代替程序文件中的特定符号。9.在程序中我们可以通过条件判断语句决定执行某部分代码,或者根据条件执行不同的代码,在预处理器中提也提供了类似的功能条件编译。通过条件编译可注释掉一些指定的代码,以达到版本控制、防止对文件重复包含的功能。条件编译指令#if的使用方式有两种。第一种是测试某个标识符以前是否使用#define宏定义过。第二种方式是测试某个常量表达式是否为真。10.在预处理阶段,如果出现了错误,#error指令可以生成一个诊断消息。因此,这个指令一般在测试某个条件后执行。执行#error指令的结果是把指令行中包含的内容显示为一个编译错误消息,并立即停止编译。11.谢谢观看!

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服