文档介绍:第12章 C语言综合应用程序示例
北京邮电大学出版社
内容提要
多模块编程方法
图形处理应用
操作系统接口应用
C语言与汇编语言混合编程
综合应用程序示例--汉字显示技术
一个有实用价值的C语言应用程序往往较大,需要划分成不同的模块,分配给不同的程序员去完成。因此,在实用软件的开发中,往往需要采用多模块编程技术。
多模块编程方法
使用多模块编程技术的处理过程大致如下:
1、首先将一个大的源程序根据其功能合理地划分成若干个小的源程序,每个小源程序均以程序文件(.C)的形式保存在磁盘上。并建立一个包括各个源程序模块的文件名的工程文件(.prj)。
2、然后用编译器进行编译,将工程文件中指定的多个源程序文件进行编译,生成多个目标文件和一个可执行文件。注意,在分模块单独编译处理的各个程序模块中,必须有且只有一个主函数 main( ) 。
一、程序模块组织
1、使用外部变量
,,以实现模块间的通信。
说明形式:extern 类型说明符外部变量名;
注意:只是进行了说明,并不是变量定义。
2、举例
。
二、模块之间的通信
设程序模块文件 的内容如下:
 #include<>
int var=8; /* 全局变量的定义*/
main()
{ printf(“%d”,var);
proc1();
printf(“%d\n”,var);
}
  的内容如下:
extern int var; /* 外部变量的说明*/
proc1()
{
var = 25 ;
}
程序编译连接生成可执行文件,执行结果为:
     8 25
1、#include命令经过预处理后,会将其后有关文件的内容拷贝到命令所在的源程序文件中。
2、在上一个例子中,程序要能够编译运行,,其内容为:
。
3、:
三、预处理命令#include的应用
#include<>
#include<>
int var=8;
main()
{ ……}
。
图形处理应用
图形处理是计算机应用的一个极具特色的领域,有很好的应用前景,可以增强程序的趣味性、实用性。
一、基本图形处理库函数
Turbo C支持多种显示适配器的各种显示模式,提供了画点、线、圆、椭圆、多边形以及输出各种字体等功能的函数。
这些函数包含在图形头文件()中,在进行目标程序连接时,,其图形接口还包括图形显示驱动程序(*.BGI)等。
作用:将一个图形驱动程序装入内存,并将系统设置成
图形模式;
说明:gd指定所用的图形驱动程序,其值可参照书上
的图形驱动程序常量表;
gm说明初始化的图形模式,其取值见附录;
path指定驱动程序目录路径,空字符时表示驱动
程序就在当前目录下。
例如:若已知所用的图形适配器为CGA,并打算使用
640×200高分辨率模式CGAHI,则图形初始化
部分可写成:
1、图形系统初始化函数
⑴显示模式控制函数initgraph(gd,gm,path)
int gd = CGA, gm = CGAHI;
initgraph(&gd, &gm, “\\TC”);
⑵自动检测显示器硬件的函数detectgraph(gd,gm)
作用:当编程者不知所用的图形适配器的类型,
或者需要编写在不同图形模式下均能运行
的图形程序,使用该函数可以完成对适配
器的检查,获取显示器类型号(赋给gd)
及相应的显示模式(赋给gm)。
例如:图形初始化部分可以写成:
int gd, gm;
detectgraph(&gd,&dm); /*自动测试硬件*/
initgraph(&gd, &gm, “\\TC”);
/* 根据测试结果进行图形初始化*/
⑷恢复显示方式函数closegraph( )
作用:关闭图形系统,返回文本工作方式。
⑸恢复工作模式函数restorecrtmode( )
设置图形工作模式函数setgraphmode( )
作用:使显示器工作方式在图形和文本方式
之间来回切换。
⑶清屏函数cleardevice( )
作用:用于画图前进行清除屏幕;
作用范围为整个屏幕