《Microsoft C6.0之二 高级程序设计技术》求取 ⇩

介绍1

第一部分提高程序的性能3

第一章优化C程序3

1.1 从程序员工作台控制优化3

1.2 从命令行控制优化3

1.3 用编译杂注控制优化4

1.4缺省的优化5

1.4.1 消除公共子表达5

1.4.2 消除死存储5

1.4.3 常数传送5

1.5剪裁优化6

1.5.1 优化速度或空间(/Ot和(/Os)6

1.5.2 产生内部函数(/Oi)6

1.5.3 假设无别名使用(/Oa和/Ow)9

1.5.4 执行循环优化(/Ol)11

1.5.5 禁止不安全的循环优化(/Oz)12

1.5.6 允许深度优化(/Oz)12

1.5.7 取消栈探查(/Gs)13

1.5.8 允许分配全局寄存器(/Oe)13

1.5.9 允许公共子表达式优化(/Oc和/Og)14

1.5.10 实现浮点结果的一致性(/Op)14

"1.5.11 使用80186,80188及80286处理器(/G0、/G1、/G2)15

1.5.12 最大效率的优化(/Ox)15

1.6控制优化的链接程序(LINK)选择项16

1.6.1 允许远调用优化(/FARCALL TRANSLATION)16

1.6.2 压缩代码(/PACKCODE)17

1.6.3 压缩数据(/PACKDATA17

1.6.4 压缩可执行文件(/EXEPACK)18

1.7不同环境中的优化18

1.7.1 DOS中的优化18

1.7.2 OS/2中的优化18

1.7.3 Microsoft Windows中的优化18

1.8选择函数的调用形式18

1.8.1 C调用形式18

1.8.2 FORTRAN/Pascal调用形式19

1.8.3 寄存器调用形式19

1.8.4 _fastcall调用形式19

第二章内存管理22

2.1指针的大小22

2.1.1 指针及64K的段22

2.1.2 近(near)指针22

2.1.3 远(far)指针23

2.1.4 巨型(huge)指针23

2.1.5 基址导址24

2.2选择标准存储模式24

2.2.1 六种标准存储模式24

2.2.2 对代码和数据大小的限制25

2.2.3 微型存储模式25

2.2.4 巨型存储模式25

2.2.5 空指针26

2.2.6 存贮模式的说明27

2.3混合存储模式27

2.3.1 有关指针的问题29

2.3.2 说明近、远、巨型及其变量29

2.3.3 说明近函数和远函数30

2.3.4 指针转换31

2.4自定义存储模式33

2.4.1 设置代码指针的长度33

2.4.2 设置数据指针的长度34

2.4.3 设置段34

2.4.4 支持自定义模式的库36

2.4.5 设置数据词37

2.4.6 命名模块和段37

2.4.7 说明正文和数据段38

2.5基本变量的使用38

2.5.1 新引进的几个关键字38

2.5.2 说明基变量39

2.5.3 基指针的优点44

第三章使用嵌入式汇编语言程序46

3.1 嵌入式汇编语言的优点46

3.2 _asm关键字46

3.3 _asm中的汇编语言47

3.4在asm块中使用C49

3.4.1 使用操作符49

3.4.2 使用C的符号50

3.4.3 访问C数据50

3.4.4 编写函数51

3.5 使用及保存寄存器52

3.6 跳转到标号处53

3.7 调用C函数54

3.8 将_asm块定义为宏55

3.9 优化56

第四章控制浮点数学运算58

4.1说明浮点类型58

4.1.1 用浮点类型说明变量58

4.1.2 说明函数的返回值为浮点类型59

4.2 C运行时间库对long double类型的支持60

4.3数学包概述60

4.3.1 仿真包60

4.3.2 数学协处理器包61

4.3.3 补充数学包61

4.4选择浮点选择项(/FP)61

4.4.1 嵌入式仿真包选择项(/FPi)63

4.4.2 嵌入式数学协处理器指令选择项(/FPi87)63

4.4.3 调用仿真包选择项(/FPc)63

4.4.4 调用数学协处理器选择项(FPc87)64

4.4.5 使用补充数学库选择项(/FPa)64

4.5浮点选择项涉及的库65

4.5.1 使用标准库链接65

4.5.2 嵌入指令及调用所涉及的库65

4.6 浮点选择项的兼容问题65

4.7 使用NO87环境变量66

4.8 不兼容问题66

第二部分提高程序员的工作效率71

第五章快速编译及链接71

5.1快速编译71

5.1.1 快速编译程序71

5.1.2 可增编译选择项71

5.2使用ILINK快速链接71

5.2.1 使用可增链接的准备工作72

5.2.2 可增性错误73

第六章使用NMAKE实用程序开发项目(project)74

6.1 NMAKE概况74

6.2 NMAKE命令74

6.3NMAKE描述文件75

6.3.1 描述块75

6.3.2 注释79

6.3.3 宏79

6.3.4 推理规则85

6.3.5 指令87

6.3.6 伪目标89

6.3.7 程序员工作台的extmake语法90

6.4 命令行选择项91

6.5NMAKE命令文件92

6.6 TOOL.INI文件92

6.7 嵌入文件93

6.8 NMAKE的操作顺序94

6.9 NMAKE与MAKE的不同之处95

第七章用HELPMAKE建立Help文件97

7.1Help数据的结构和内容97

7.1.1 Help文件的内容97

7.1.2 Help文件的格式98

7.2 调用HELPMAKE99

7.3HELPMAKE选择项99

7.3.1 编码选择项100

7.3.2 解码选择项102

7.4 建立Help数据库103

7.5Help正文规范103

7.5.1 Help正文件结构103

7.5.2 局部局境104

7.5.3 局境前缀104

7.5.4 超链式104

7.6使用Help数据库格式107

7.6.1 quickHelp格式107

7.6.2 最小格式化的ASCII格式111

7.6.3 多种的正文格式(RTE)112

第八章裁剪Microsoft程序员工作台114

8.1设置开关114

8.1.1 编辑〈assign〉伪文件114

8.1.2 编辑TOOLS.INI初始化文件115

8.2 键指派115

8.3编写宏116

8.3.1 宏语法116

8.3.2 宏响应117

8.3.3 宏参数118

8.3.4 宏条件118

8.3.5 临时宏119

8.3.6 记录宏119

8.4编写并建立C扩充120

8.4.1 建立实方式的C扩充122

8.4.2 建立保护方式的C扩充123

8.4.3 描述功能和开关124

8.4.4 初始化功能125

8.4.5 原型功能126

8.4.6 接收参数126

8.4.7 调用PWB128

8.4.8 调用C库函数130

第九章用CodeView调试C程序132

9.1 CodeView窗口132

9.2 调试技术概述133

9.3查看并修改程序数据134

9.3.1 在Watch窗口显示变量134

9.3.2 在Watch窗口显示表达式134

9.3.3 显示数组和结构135

9.3.4 动态地显示数组元素136

9.3.5 使用Quick Watch137

9.3.6 显示内存137

9.3.7 显示寄存器138

9.3.8 修改变量、寄存器及内存的值138

9.4控制执行139

9.4.1 连续执行139

9.4.2 单步执行141

9.5 重新显示一个调试阶段141

9.6 高级CodeView技术142

9.7用命令行选择控制CodeView144

9.8 用TOOLS.INI文件裁剪CodeView145

第三部份特殊环境149

第十章编写图形程序149

10.1显示方式149

10.1.1 简单的图形程序149

10.1.2 设置显示方式150

10.1.3 读取显示方式信息151

10.1.4 最高分辨率与最大颜色数152

10.1.5 选择显示方式153

10.2调制颜色与调色板的改变153

10.2.1 CGA调色板154

10.2.2 Olivetti调色板155

10.2.3 VGA调色板155

10.2.4 MCGA调色板156

10.2.5 EGA调色板156

10.2.6 符号常量157

10.3在坐标系中指定一点157

10.3.1 物理坐标系158

10.3.2 视见区坐标系159

10.3.3 窗口坐标系160

10.3.4 屏幕位置161

10.3.5 外接矩形161

10.3.6 象素光标162

10.4图形函数162

10.4.1 控制显示方式162

10.4.2 改变颜色163

10.4.3 画点,线和图形164

10.4.4 定义模式165

10.4.5 对图象进行操作165

10.5使用图形字型166

10.5.1 使用C字型库167

10.5.2 登记字型167

10.5.3 设置当前字型167

10.5.4 显示文本169

10.5.5 例子程序169

10.5.6 有效地使用字型171

第十一章产生图表及图形172

11.1 表意制图综述172

11.2 有关图表的说明173

11.3编写一个表意图形程序175

11.3.1 Pie图表175

11.3.2 Bar,Column和line图表177

11.3.3 Scatter图181

11.4控制颜色和模式183

11.4.1 颜色池184

11.4.2 格式池184

11.4.3 模式池185

11.4.4 字符池186

11.5设置图表环境186

11.5.1 titletype结构187

11.5.2 axistype结构188

11.5.3 windowtype结构190

11.5.4 Legendtype结构191

11.5.5 chartenv结构192

第十二章混合语言程序设计194

12.1 混合语言调用194

12.2语言约定要求195

12.2.1 命名约定要求195

12.2.2 调用约定要求197

12.2.3 参数传递要求199

12.3编译和链接199

12.3.1 用正确的存储模式编译200

12.3.2 与语言库链接200

12.4 C对高级语言的调用200

12.5 C调用BASIC202

12.6C调用FORTRAN205

12.6.1 从C调用FORTRAN子例程205

12.6.2 从C调用FORTRAN函数206

12.7C调用PASCAL207

12.7.1 从C调用一个PASCAL过程207

12.7.2 从C调用PASCAL函数208

12.8C调用汇编209

12.8.1 编写汇编语言过程210

12.8.2 建立过程210

12.8.3 进入过程211

12.8.4 为局部数据分配空间211

12.8.5 保留寄存器值212

12.8.6 访问参数212

12.8.7 返回一个值214

12.8.8 退出过程215

12.9混合语言程序设计中的数据处理216

12.9.1 缺省的命名和调用约定216

12.9.2 数值数据表示217

12.9.3 串217

12.9.4 数组220

12.9.5 数组说明和加下标220

12.9.6 结构、记录和用户定义类型221

12.9.7 外部数据222

12.9.8 指针和地址变量222

12.9.9 公用块223

12.9.10 使用可变数目的参数224

第十三章编写可移植的程序225

13.1硬件约定(Assumption)225

13.1.1 基本数据类型的大小225

13.1.2 内存分配的顺序与字节对准227

13.1.3 字中的字节顺序230

13.1.4 结构的读和写231

13.1.5 结构中的位域231

13.1.6 处理器运算的模式233

13.1.7 指针233

13.1.8 地址空间235

13.1.9 字符集235

13.2编译程序的约定236

13.2.1 符号扩展236

13.2.2 标识符的长度与大小写238

13.2.3 寄存器变量239

13.2.4 参数个数可变的函数239

13.2.5 求值顺序240

13.2.6 函数与宏参数的副作用241

13.2.7 环境差异241

13.3 数据文件的可移植性241

13.4 考虑Microsoft C特性的可移植性241

13.5 Microsoft C字节顺序241

第四部份OS/2支持245

第十四章建立OS/2的应用程序245

14.1OS/2应用程序接口(API)245

14.1.1 调用OS/2 API245

14.1.2 包含OS/2头文件246

14.1.3 建立双模式程序作为簇应用(Family Applications)247

14.2CL命令的编译选择项249

14.2.1 链接方式选择项(/Lp,/Lr,和/Lc)249

14.2.2 建立联编程序的选择项(/Fb)249

14.2.3 库选取选择项(/MT,/ML,/MD,/Zl)250

14.2.4 内存模式选择项(/AX)251

14.3模块定义文件和输入库252

14.3.1 在LINK命令中加入模块定义文件253

14.3.2 建立动态链接库(Dlls)253

14.3.3 建立具有I/O特权的程序253

14.3.4 建立表示管理程序的应用程序254

14.3.5 用IMPLIB实用程序建立输入(import)库255

14.4 LINK命令选择项255

14.5 BIND实用程序256

第十五章建立多线索的OS/2应用程序258

15.1多线索的程序258

15.1.1 库支持258

15.1.2 包含文件260

15.1.3 为线索控制提供的C运行时间库函数260

15.2 多线索的C程序例子261

15.3 编写多线索的程序267

15.4 编译和链接269

15.5 常见的问题及可能的原因270

15.6使用保护方式的CodeView调试器271

15.6.1 用/Zi选择项编译271

15.6.2 线索号提示271

15.6.3 线索命令271

15.6.4 CodeView使用的屏幕组273

第十六章OS/2的动态链接274

16.1动态链接概念274

16.1.1 装入时和运行时链接274

16.1.2 应用程序和DLLS275

16.1.3 DLL和Microsoft C运行时库275

16.2设计和编写DLLS277

16.2.1 浮点数学要求277

16.2.2 初始化及终止要求278

16.2.3 使DLL要重入280

16.2.4 信号处理282

16.2.5 使用Microsoft C关键字282

16.2.6 DLL的编译选择项283

16.3用Microsoft C建立动态链接(DLL)284

16.3.1 调用静态C运行时库函数的动态链接库(DLL)284

16.3.2 不调用C运行时库的DLLS287

16.3.3 调用C运行时动态链接库的应用程序和DLL288

16.3.4 使用CodeView调试动态链接库(DLL)291

附录295

附录A退出码的使用295

A.1 退出函数295

A.2 从命令和批文件中检测退出码296

A.3 从其它程序访问退出码296

附录BC5.1和C6.0版本之间的差异298

B.1为与ANSI标准一致所做的修改298

B.1.1 ANSI-Mandated新特征298

B.1.2 整数改进规则298

B.1.3 定义NULL为一指针299

B.1.4 移位算子299

B.1.5 指向类型定义的指针299

B.1.6 标识非标准的关键字300

B.1.7 三字母表示的字符300

B.1.8 与ANSI C语言标准不一致之处300

B.2新关键字和函数300

B.2.1 直接插入汇编程序301

B.2.2 基指针和对象301

B.2.3 基准分配支持302

B.2.4 释放不使用的堆空间302

B.2.5 将静态数据空间变为堆302

B.2.6 长双精度类型302

B.2.7 长双精度函数302

B.2.8 不依赖于存储模型的串函数和内存函数303

B.2.9 混合存储模式的内存分配支持303

B.2.10 fastcall属性(/Gr选项)303

B.2.11 驱动器和目录函数304

B.2.12 为使用OS/2而增加的文件输出函数304

B.3新的特征305

B.3.1 串和宏305

B.3.2 CL选项305

B.3.3 微模式(.COM文件)305

B.3.4 优化编译提示306

B.3.5 无名结构和联合306

B.3.6 无长度的数组作为一个结构的最后成员307

B.3.7 改进的警告信息307

B.3.8 宏307

B.3.9 改进了对OS/2中多个执行路径的支持307

B.3.10 对OS/2中的管道支持308

B.4代码生成方面的差别308

B.4.1 速度和空间的改进308

B.4.2 代码质量308

B.4.3 浮点代码生成308

B.4.4 内部函数308

B.5变化和删除309

B.5.1 被删除的特征309

B.5.2 实表达式求值309

B.5.3 缺省优化309

B.5.4 char型参数的符号扩展310

B.5.5 条件编译310

B.5.6 const和volatile限定词310

B.5.7 内存分配310

B.5.8 被命令行参数使用的内存310

B.5.9 printf的格式说明符310

B.5.10 返回浮点值的函数311

附录C由编译实现定义的特性312

C.1 翻译312

C.1翻译312

C.1.1 诊断312

C.2环境312

C.2.1 函数main的参数312

C.2.2 交互设备313

C.3标识符313

C.3.1 不与外部连接的标识符的有效的字符的个数313

C.3.2 与外部连接的标识符的有效字符的个数313

C.3.3 大小写字符313

C.4字符集313

C.4.1 ASCII字符集313

C.4.2 多字节字符313

C.4.3 每个字符的位数314

C.4.4 字符集314

C.4.5314

C.4.6 宽字符314

C.4.7 变换多字节字符314

C.4.8 字符值的范围314

C.5整数317

C.5.1 整数值的范围317

C.5.2 整数的降级317

C.5.3 符号整数的位操作317

C.5.4 余数317

C.5.5 右移318

C.6浮点算术318

C.6.1 值318

C.6.2 将整数变为浮点数318

C.6.3 浮点值的截取318

C.7数组和指针318

C.7.1 最大的数组长度318

C.7.2 强制指针转换318

C.7.3 指针减法319

C.8寄存器319

C.8.1 寄存器的可用性319

C.9结构,联合,枚举和位域319

C.9.1 对联合的不适当存取319

C.9.2 位域的符号319

C.9.3 位域的存贮320

C.9.4 位域的对准320

C.9.5 枚举类型(enum)320

C.10限定词320

C.10.1 访问Volatile对象320

C.11说明符321

C.11.1 最大数321

C.12语句321

C.12.1 对Switch语句的限制321

C.13预处理伪指令321

C.13.1 字符常数和条件包含321

C.13.2 尖括号(〈〉)中的包含文件321

C.13.3 引号("""")中的包含文件321

C.13.4 字符序列322

C.13.5 杂注322

C.13.6 缺省日期和时间322

C.14库函数322

C.14.1 NULL宏322

C.14.2 由函数assert印出的诊断信息322

C.14.3 字符测试323

C.14.4 定义域错323

C.14.5 浮点值的下溢323

C.14.6 函数fmod323

C.14.7 函数signal323

C.14.8 缺省信号值324

C.14.9 信号SIGILL324

C.14.10 行结束符324

C.14.11 空格行324

C.14.12 空字符324

C.14.13 附加方式下的文件位置324

C.14.14 文本文件的截断325

C.14.15 文件缓冲325

C.14.16 长度为零的文件325

C.14.17 文件名325

C.14.18 文件访问限制325

C.14.19 删除打开的文件325

C.14.20 改名出现与已有文件重名325

C.14.21 打印指针值325

C.14.22 读指针值326

C.14.23 读值范围326

C.14.24 文件位置错326

C.14.25 函数perror产生的信息326

C.14.26 分配长度为零的内存327

C.14.27 函数abort327

C.14.28 函数atexit327

C.14.29 环境名327

C.14.30 函数system328

C.14.31 函数strerror328

C.14.32 时区329

C.14.33 函数clock329

《Microsoft C6.0之二 高级程序设计技术》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由北京科海培训中心 北京科海培训中心 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。

高度相关资料

FoxBASE程序设计 二级(1999 PDF版)
FoxBASE程序设计 二级
1999 北京:电子工业出版社
高级程序设计技术( PDF版)
高级程序设计技术
北京:人民邮电出版社
FOXPRO ROR WINDOWS 高级成程序设计技术( PDF版)
FOXPRO ROR WINDOWS 高级成程序设计技术
FOXPRO 高级程序设计技术( PDF版)
FOXPRO 高级程序设计技术
Microsoft C6.0之四  Code View及实用程序手册( PDF版)
Microsoft C6.0之四 Code View及实用程序手册
北京科海培训中心
高级C++程序设计技巧( PDF版)
高级C++程序设计技巧
北京科海培训中心
Microsoft C 6.0 高级程序设计技术( PDF版)
Microsoft C 6.0 高级程序设计技术
高级程序设计(1994 PDF版)
高级程序设计
1994 杭州:浙江大学出版社
FoxPro for Windows高级程序设计技术(1995 PDF版)
FoxPro for Windows高级程序设计技术
1995 北京:海洋出版社
TURBO C2.0高级程序设计技术(1990 PDF版)
TURBO C2.0高级程序设计技术
1990 科海培训中心
TURBO C2.0高级系统程序设计技术(1991 PDF版)
TURBO C2.0高级系统程序设计技术
1991 北京希望电脑公司
Turbo Pascal 6.0高级程序设计技术(1992 PDF版)
Turbo Pascal 6.0高级程序设计技术
1992 北京:海洋出版社
Visual FoxPro高级程序设计技术探密(1999 PDF版)
Visual FoxPro高级程序设计技术探密
1999 北京:国防工业出版社
高级C程序设计技术与实例(1991 PDF版)
高级C程序设计技术与实例
1991 中国科学院希望高级电脑技术公司
超大规模集成物理学导庥(1988 PDF版)
超大规模集成物理学导庥
1988 北京:电子工业出版社