当前位置:首页 > 工业技术
C高级实用程序设计
C高级实用程序设计

C高级实用程序设计PDF电子书下载

工业技术

  • 电子书积分:15 积分如何计算积分?
  • 作 者:王士元编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:1996
  • ISBN:7302020639
  • 页数:499 页
图书介绍:内容简介本书针对目前应用程序设计的热点,如中、英文菜单设计,画图,动画,中断程序,程序的驻留,屏幕图形的存取、打印,C程序汉字显示技术,C语言与汇编语言的混合编程,C语言与FoxBASE的混合编程等进行设计示范,附有大量示例程序和注释。本书也用了部分篇幅对高级程序设计涉及的硬件及C中的文件、指针、内存分配、图形适配器等内容进行分析,并简单介绍了实用程序编程方法。本书适用于理工科本科生、研究生和广大计算机应用人员。
《C高级实用程序设计》目录

第1章 概述 1

1.1 C语言的发展状况 1

1.2 C语言的编程格式 2

1.2.1 C语言程序的结构特点 2

1.2.2 模块化的程序设计 7

1.2.3 大程序的设计风格 9

1.3 Turbo C 2.0的程序设计开发过程 10

1.3.1 Turbo C集成开发环境 11

1.3.2 Turbo C的命令行编译连接 11

第2章 PC机存储器结构及变量存储方式 13

2.1 PC机存储器结构 13

2.1.1 系统存储器(System Memory) 13

2.1.2 扩展存储器(Extended Memory) 14

2.1.3 关于HMA(高端存储器)的使用 14

2.1.4 扩充存储器(Expanded Memory) 15

2.2 存储器的分段与物理地址的形成 16

2.3 与地址操作有关的几个宏 18

2.4 寄存器与伪变量 19

2.4.1 80x86的内部寄存器 19

2.4.2 伪变量 22

2.4.3 伪变量的使用 23

2.5 保护虚地址方式下的段和偏移 24

2.6 扩展存储器的使用实例 28

2.6.1 程序1 28

2.6.2 程序2 31

2.7 变量的存储方式 32

2.7.1 数据类型与存储字节数 33

2.7.2 变量的存储类型 34

第3章 关于DOS的说明及BIOS和DOS调用 38

3.1 关于DOS的说明 38

3.1.1 DOS的基本组成 38

3.1.2 关于DOS的启动 40

3.1.3 关于BIOS 40

3.1.4 中断向量表 41

3.2 BIOS 41

3.2.1 ROM BIOS的使用 42

3.2.2 视频BIOS 42

3.2.3 BIOS的调用 42

3.3 DOS调用 43

3.4 BIOS和DOS系统调用函数 44

3.4.1 int86()函数 44

3.4.2 int86x()函数 46

3.4.3 intdos()函数 47

3.4.4 intdosx()函数 48

3.4.5 intr()函数 49

第4章 指针、函数 51

4.1 指针的赋值 51

4.1.1 指向一个简单变量的指针 52

4.1.2 指向数组的指针 52

4.1.3 指向函数的指针 55

4.1.4 指向结构的指针 57

4.2 指针数组 59

4.3 二级指针 60

4.4 指针型函数 62

4.5 指针的分类 63

4.5.1 近程指针(near型) 64

4.5.2 远程指针(far型) 64

4.5.3 巨指针(huge) 65

4.6 函数 66

4.6.1 函数的说明 67

4.6.2 函数的类型与定义 68

4.6.3 函数的调用 70

4.6.4 函数的参数传送 72

4.6.5 main()函数中的参数 84

4.7 函数的递归调用 85

4.8 函数的组织 87

第5章 内存模式与动态存储结构 88

5.1 内存模式(编译模式) 88

5.1.1 微小模式(Tiny) 88

5.1.2 小模式(Small) 89

5.1.3 中模式(Medium) 89

5.1.4 紧凑模式(Compact) 89

5.1.5 大模式(Large) 90

5.1.6 巨模式(Huge) 91

5.2 各内存模式下缺省段名和堆的分配 91

5.3 栈的结构 93

5.4 堆的结构 95

5.5 堆管理函数 96

5.5.1 示例1—使用coreleft()和malloc()函数例 97

5.5.2 示例2—使用farcalloc()函数例 98

5.5.3 示例3—堆和栈操作演示例 99

5.5.4 示例4—使用堆空间指针例 100

5.6 动态存储例——链表 102

5.6.1 单链表结构 102

5.6.2 链表的建立 103

5.6.3 按升序排列的单链表 105

5.6.4 单链表的输出及节点删除 107

5.6.5 单链表程序例 108

5.6.6 双链表 115

5.7 关于联合的说明 123

第6章 文件 126

6.1 文本流和二进制流 127

6.2 流与文件 128

6.3 标准文件的输入输出操作 129

6.3.1 标准文件输入输出 130

6.3.2 关于FILE数据结构 130

6.3.3 标准文件打开函数fopen() 131

6.3.4 标准文件关闭函数fclose() 135

6.3.5 标准文件的读写 136

6.3.6 清除和设置文件缓冲区的函数 138

6.3.7 应用例 139

6.3.8 文件的随机读写函数 141

6.4 非标准的文件输入输出操作 147

6.4.1 建立一个新文件或重写一个已有文件的函数creat(),_creat(),creatnew() 148

6.4.2 非标准的文件打开函数 149

6.4.3 关于系统标准输入输出设备的文件代号 151

6.4.4 非标准文件的关闭函数close() 151

6.4.5 非标准文件的读写函数 151

6.4.6 删除文件函数unlink() 154

6.4.7 移动文件指针的函数lseek() 154

第7章 I/O接口的输入输出 158

7.1 I/O接口的寻址方式 160

7.2 I/O接口的输入输出函数 161

7.2.1 接口输入函数 162

7.2.2 接口输出函数 162

7.3 应用例 163

7.3.1 发声程序 163

7.3.2 信号采集程序 164

第8章 中断服务程序的编写 167

8.1 PC机的中断类型 167

8.1.1 软中断 168

8.1.2 硬中断 168

8.1.3 中断向量表 168

8.1.4 中断向量表的填入 169

8.2 用Turbo C编写中断程序的方法 169

8.2.1 编写中断服务程序 170

8.2.2 安装中断服务程序 170

8.2.3 中断服务程序的激活 171

8.3 中断服务程序例 174

8.3.1 硬中断演示程序——秒表 174

8.3.2 用geninterrupt()函数产生中断 177

8.3.3 扬声器唱歌程序 178

8.3.4 采用中断方式的信号采集程序 181

8.3.5 定时中断程序 185

8.3.6 能被Turbo C程序调用的汇编语言中断程序 189

第9章 驻留程序的设计 194

9.1 几个特殊区域 194

9.1.1 程序段前缀PSP和DTA 194

9.1.2 DOS环境块 196

9.2 TSR程序设计 197

9.2.1 TSR的中断服务部分 198

9.2.2 程序的驻留 198

9.2.3 关于DOS重入问题的解决方法 199

9.2.4 TSR程序设计中另外的几个问题 200

9.2.5 几个有关的库函数说明 201

9.3 用户激活驻留程序TSR的方法 202

9.4 键盘编码 204

9.5 键盘缓冲区 207

9.6 键盘操作函数bioskey() 208

9.7 程序例 211

9.7.1 用int5激活驻留程序 211

9.7.2 用Ctrl-Break激活驻留程序 215

9.7.3 一个完整的驻留程序 217

9.8 鼠标器 229

9.8.1 鼠标器工作原理简介 229

9.8.2 鼠标器的INT 33H功能调用 230

9.8.3 用鼠标器作图 233

9.8.4 用鼠标器热键激活TSR程序 236

第10章 Turbo C作图 241

10.1 图形显示的坐标和象素 241

10.1.1 图形显示的坐标 241

10.1.2 象素 241

10.2 图形显示器与适配器 242

10.3 显示器工作方式 244

10.4 Turbo C支持的适配器和图形模式 244

10.5 图形系统的初始化 246

10.5.1 图形系统的初始化函数 246

10.5.2 图形系统检测函数 247

10.5.3 清屏和恢复显示方式的函数 248

10.6 基本图形函数 249

10.6.1 画点函数 249

10.6.2 有关画图坐标位置的函数 249

10.6.3 画线函数 250

10.6.4 画矩形和条形图函数 251

10.6.5 画椭圆、圆和扇形图函数 252

10.7 颜色控制函数 253

10.7.1 颜色设置函数 254

10.7.2 调色板颜色的设置 255

10.8 画线的线型函数 259

10.8.1 设定线型函数 259

10.8.2 得到当前画线信息的函数 261

10.9 封闭图形的填色函数及有关画图函数 261

10.9.1 填色函数 262

10.9.2 用户自定义填充函数 262

10.9.3 得到填充模式和颜色的函数 264

10.9.4 与填充函数有关的作图函数 265

10.9.5 可对任意封闭图形填充的函数 266

10.10 屏幕操作函数 267

10.10.1 屏幕图象存储和显示函数 267

10.10.2 设置显示页函数 269

10.11 图视口操作函数 271

10.11.1 图视口设置函数 271

10.11.2 图视口清除与取信息函数 271

10.12 图形方式下的文本输出函数 274

10.12.1 文本输出函数 274

10.12.2 定义文本字型函数 277

10.12.3 文本输出字符串函数 278

10.13 综合应用例 281

10.13.1 用户自定义图模填充长方框图象 281

10.13.2 画圆饼图程序 283

10.13.3 画条形图程序 285

10.13.4 画函数曲线 287

10.14 图形程序运行的条件 289

10.15 图形方式下字型输出的条件 290

第11章 菜单设计与动画技术 292

11.1 菜单 293

11.2 菜单设计要点 293

11.3 两个菜单程序 294

11.3.1 菜单程序1 294

11.3.2 菜单程序2 302

11.4 动画技术 320

11.4.1 利用动态开辟图视口方法 320

11.4.2 利用显示页和编辑页交替变化 320

11.4.3 利用画面存储再重放的方法 321

11.4.4 直接对图象动态存储器进行操作 323

11.5 一个动画例子 323

第12章 文本的屏幕输出 327

12.1 文本方式的控制 327

12.1.1 文本方式控制函数 327

12.1.2 文本方式颜色控制函数 328

12.1.3 字符显示亮度控制函数 329

12.2 窗口设置和文本输出函数 330

12.2.1 窗口设置函数 331

12.2.2 控制台文本输出函数 331

12.3 清屏和光标操作函数 331

12.3.1 清屏函数 331

12.3.2 光标操作函数 332

12.4 程序例 333

12.5 屏幕文本移动与存取函数 334

12.5.1 屏幕文本移动函数 334

12.5.2 屏幕文本存取函数 334

12.6 状态查询函数 336

12.6.1 得到屏幕文本显示有关信息的函数 336

12.6.2 得到当前光标位置的函数 338

12.7 综合应用例 338

12.7.1 一个弹出式菜单 338

12.7.2 一个下拉式菜单 342

第13章 屏幕图形的存取 347

13.1 屏幕图形与VRAM地址的关系 347

13.2 存取屏幕图象时地址指针的设置 348

13.3 VRAM的位面结构和对它的读写操作 349

13.3.1 VRAM的位面结构 349

13.3.2 将VRAM位面信息存入文件 350

13.3.3 将文件图象信息写入VRAM位面 351

13.4 程序例 352

13.4.1 将屏幕图形存入文件的程序 352

13.4.2 将图形文件显示到屏幕上的程序 353

13.4.3 存多幅图形的程序 354

13.4.4 显示图象程序例 357

13.5 屏幕图形和图形文件的打印输出 359

13.5.1 打印机适配器及其寄存器结构 359

13.5.2 点阵式打印机打印图形的原理 360

13.6 屏幕输出打印编程要求 363

13.6.1 打印屏幕图形例 363

13.6.2 打印图形文件例 366

13.7 用单色打印机打印彩色图象的方法 368

13.7.1 模式法 369

13.7.2 抖动法 369

13.7.3 用模式法打印图象例 370

13.7.4 用32级灰度抖动法打印图象例 373

13.7.5 用16级灰度抖动法打印图象例 378

第14章 C程序中汉字显示技术 382

14.1 可在中文DOS下显示汉字的程序编制 382

14.2 在西文DOS下C程序显示汉字技术 385

14.2.1 国标汉字字符集与区位码 385

14.2.2 汉字的内码 386

14.2.3 内码转换为区位码与字模显示技术 387

14.2.4 程序例 388

14.3 在西文DOS下,24×24点阵汉字的显示与放大 391

14.4 用直接写显示存储器VRAM的方法显示汉字 394

14.4.1 将汉字字模装入VRAM的方法一 396

14.4.2 程序例 399

14.4.3 将汉字字模装入VRAM的方法二 401

14.4.4 24×24打印字模转换为24×24点阵显示字模 403

14.4.5 程序例 404

14.5 汉字的任意倍数放大 407

14.6 利用BIOS中断调用显示汉字 411

14.6.1 文本方式下显示汉字的原理 411

14.6.2 中文菜单 414

14.7 建立一个小型专用汉字库 419

14.7.1 库的建立方法 420

14.7.2 建立小型汉字库的程序例 420

14.7.3 利用小型汉字库显示汉字程序例 426

第15章 C语言与汇编语言的混合编程 429

15.1 汇编语言子程序使用的场合 429

15.2 汇编语言程序的结构 430

15.2.1 常规的汇编语言程序结构 430

15.2.2 用简化段定义的程序结构 435

15.2.3 简化段定义的伪指令 436

15.2.4 段组定义伪指令 437

15.2.5 定义内存模式伪指令 438

15.2.6 段名的缺省名 438

15.2.7 定义段次序 439

15.2.8 一个用简化段定义的汇编程序标准框架 440

15.3 能被C程序调用的一个汇编子程序框架 441

15.3.1 可被C调用的一般程序结构 441

15.3.2 按C编译要求段序的一个汇编子程序框架 442

15.4 由Turbo C自动产生的一种汇编语言程序结构框架 443

15.5 用简化段定义的汇编语言子程序 445

15.6 编写汇编语言子程序的几个问题 446

15.6.1 变量和函数的相互调用 446

15.6.2 参数的传递原则 448

15.6.3 汇编语言子程序的返回值 450

15.6.4 汇编语言子程序中寄存器的使用 451

15.7 混合编程的编译和连接 452

15.7.1 在Turbo C集成环境下进行编译和连接 452

15.7.2 用Turbo C命令行编译程序TCC进行编译连接 452

15.8 混合编程实例 453

15.8.1 程序1——同为小内存模式的混合编程 453

15.8.2 程序2——C程序和汇编子程序是不同的内存模式 454

15.8.3 程序3——中内存模式下的混合编程 455

15.9 Turbo C程序中内嵌汇编指令行 458

15.10 内嵌汇编指令的C程序编译连接方法 461

15.11 嵌入汇编指令行的程序例 462

15.12 汇编语言程序调用C函数 465

15.13 汇编语言调用C函数例 466

15.13.1 程序1——无参调用 466

15.13.2 程序2——有参调用 467

第16章 C与FoxBASE(dBASE)的接口技术 470

16.1 C程序直接读取FoxBASE数据库中的数据 470

16.1.1 FoxBASE(dBASE)数据库文件结构 470

16.1.2 对FoxBASE数据库中数据的读取 473

16.1.3 程序例 474

16.1.4 C程序读取数据库中MEMO字段 477

16.1.5 自定义的几个对FoxBASE操作的函数 479

16.2 通过FOXBASE索引文件读取数据 483

16.3 从数据库的.MEM文件中读取数据 489

16.4 C程序间接读取数据库的.DBF文件 492

16.4.1 用COPY TYPE命令将.DBF转换成文本文件 492

16.4.2 C程序间接传送数据给.DBF文件 494

16.5 关于C和FoxBASE的交替使用问题 495

参考文献 499

相关图书
作者其它书籍
返回顶部