图书介绍

C/C++/C#程序员实用大全 C/C++/C#最佳编程指南PDF|Epub|txt|kindle电子书版本网盘下载

C/C++/C#程序员实用大全 C/C++/C#最佳编程指南
  • (美)Kris Jamsa著;张春晖等译 著
  • 出版社: 中国水利水电出版社
  • ISBN:7508411897
  • 出版时间:2002
  • 标注页数:1144页
  • 文件大小:215MB
  • 文件页数:1177页
  • 主题词:C语言(学科: 程序设计) C语言 程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

C/C++/C#程序员实用大全 C/C++/C#最佳编程指南PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一章 C语言入门1

1 编程简介1

3 编译C程序2

2 创建ASCII码源文件2

4 语法错误3

6 往程序里添加语句4

5 典型的C程序结构4

8 C语言区分大小写字母5

7 在新的一行上显示输出结果5

10 程序开发过程6

9 逻辑错误(BUG)6

12 进一步了解连接器7

11 文件类型7

14 帮助编译器查找头文件8

13 头文件8

16 注释程序9

15 加速编译9

18 注意编译器警告信息10

17 提高程序的可阅读性10

21 名字的重要性11

20 用注释屏蔽语句11

19 控制编译器警告11

23 变量12

22 分号的作用12

27 定义变量时加上注释13

26 定义同一类型的多个变量13

24 给变量赋值13

25 变量类型13

31 C关键字14

30 使用有意义的变量名14

28 给变量赋初值14

29 在定义时初始他多个变量14

33 字符型变量15

32 整型变量15

35 双精度型变量16

34 浮点型变量16

38 无符号类型标识符17

37 类型标识符17

36 给浮点型变量赋值17

39 LONG(长)类型标识符18

42 寄存器类型标识符19

41 使用大数值19

40 联合使用无符号和长类型标识符19

45 有符号类型标识符20

44 从类型申明中去掉INT20

43 短(SHORT)类型标识符20

48 创建用户自己的类型21

47 把变量的值赋给另一种类型的变量21

46 多赋值运算符21

50 溢出22

49 赋给十六进制或八进制值22

51 精确度23

53 PRINTF入门24

52 赋值为引号或其他字符24

55 打印八进制或十六进制整数25

54 使用PRINTF显示整型数值25

57 用PRINTF显示长整型数值26

56 用PRINTF显示无符号整型数值26

60 用指数格式显示浮点数27

59 用PRINTF显示字符型数值27

58 用PRINTF显示浮点型数值27

62 用PRINTF显示字符串28

61 显示浮点数28

65 用PRINTF格式化整数值29

64 在数值前添加正号和负号29

63 用PRINTF显示指针地址29

66 0填充整数输出30

69 格式化指数输出31

68 用PRINTF格式化浮点数31

67 在八进制和十六进制数前显示前缀31

71 联合使用格式符32

70 左对齐PRINTF的输出32

74 使用PRINTF的转义字符33

73 显示NEAR和FAR字符33

72 字符串的换行33

76 使用PRINTF的返回值34

75 判断PRINTF已显示的字符数目34

79 用ANSI驱动器显示屏幕颜色35

78 用ANSI驱动器清除屏幕显示35

77 使用ANSI设备驱动器35

81 在C中作基本的数学运算36

80 用ANSI驱动器定位光标36

82 模运算(取余运算)37

84 强制操作符运算顺序38

83 运算符的优先级和结合性38

85 C的自增运算符39

86 C的自减运算符40

88 按位与运算41

87 按位或运算41

89 按位异或运算42

91 对变量的值进行运算43

90 “取反”运算43

93 C的长度(SIZEOF)运算符44

92 C的条件运算符44

94 移位运算45

96 条件运算符46

95 位循环运算46

100 简单语句和复杂语句47

99 用if判断条件47

97 循环控制47

98 C如何表示真(TRUE)和假(FALSE)47

101 判断是否相等48

103 用逻辑与判断两个条件49

102 关系判断49

105 逻辑非运算50

104 用逻辑或来判断两个条件50

107 在复合语句中定义变量51

106 将条件结果赋值给变量51

108 使用缩进来提高程序的可读性52

111 永远循环下去53

110 判断浮点数53

109 使用扩展CTRL+BREAK检查53

113 IF-IF-ELSE语句54

112 赋值判断54

114 按规定次数执行语句55

115 FOR语句的有些部分是可选择的56

117 控制FOR循环的增值57

116 在FOR语句中减值57

119 空循环58

118 在FOR循环中使用字符型和浮点型数值58

121 在FOR循环中使用逗号运算符59

120 无穷循环59

123 用WHILE循环重复执行一条或多条语句60

122 不要在FOR循环中改变控制变量的值60

124 WHILE循环的组成部分61

125 使用DO重复执行一条或多条语句62

126 C的CONTINUE语句63

127 使用C的BREAK语句来结束循环64

129 判断多个条件65

128 GOTO语句分支65

130 在SWITCH中使用BREAK66

131 使用SWITCH语句的DEFAULT CASE67

133 宏与常量扩展69

132 在程序中定义常量69

第二章 宏与常量69

136 使用_LINE_预处理器常量70

135 使用_FILE_预处理器常量70

134 给常量和宏命名70

137 改变预处理器的行计数71

141 判断是否进行ANSIC编译72

140 记录预处理器的日期和时间72

138 生成无条件预处理器错误72

139 其他预处理器常量72

144 比较宏与函数73

143 取消宏或常量73

142 判断是C++还是C73

148 使用#INCLUDE<FILENAME.H>或#INCLUDE“FILENAME.H”74

147 创建用户自己的头文件74

145 编译器PRAGMAS74

146 预定义值和宏74

150 进行IF-ELSE预处理75

149 判断符号是否被定义75

152 实现IF-ELSE和ELSE-IF预处理76

151 更强大的预处理器条件判断76

154 创建自定义宏77

153 定义需要多行的宏和常量77

157 创建SQUARE和CUBE宏78

156 创建MIN和MAX宏78

155 在宏定义中不要放置分号78

159 如何使用括号79

158 注意宏定义中的空格79

160 宏是没有类型的80

163 C是如何存储字符串的81

162 编译器是如何表示字符串的81

第三章 字符串81

161 C字符串的形象化81

165 在字符串常量内表示引号82

164 ‘A’是如何区别于“ A”的82

167 使用STRLEN函数83

166 判断字符串的长度83

168 将一个字符串的字符复制到另一个字符串中84

170 给字符串追加N个字符85

169 将一个串的内容追加到另一个串上85

172 不要越过字符串的界限86

171 把一个字符串转移到另一个字符串86

174 比较字符串时忽略大小写87

173 判断两个字符串是否相同87

175 将字符串转换成大写或小写88

177 返回索引到串的首次出现89

176 获取字符串中第一次出现的某个字符89

179 返回指向字符串末次出现的索引90

178 搜索字符在字符串中的末次出现90

182 计算字符串中字符出现的次数91

181 为FAR字符串编写字符串函数91

180 使用FAR字符串91

184 将某特定字符赋给整个字符串92

183 将字符串的内容反转92

186 比较两个字符串的前N个字符93

185 比较两个字符串93

187 不考虑大小写比较字符串94

189 复制字符串的内容95

188 将字符串转换成数字95

190 从给定字符序列中查找字符的首次出现96

192 计算子字符串出现的次数97

191 在字符串中查找子字符串97

195 不使用%S格式标识符显示字符串98

194 获取于字符串的最右端出现98

193 给子字符串获取索引98

197 用另一个子字符串代替子字符串99

196 从字符串中删除子字符串99

199 判断字符是否为字母数字100

198 转换数值的ASCII码形式100

203 判断字符是否为数字101

202 判断字符是否为控制符101

200 字符是否为字母101

201 判断字符是否包含ASCII值101

208 判断字符是否包含空白(whitespace)符102

207 判断字符是否为标点符号102

204 判断字符是否为图形字符102

205 判断字符是大写还是小写102

206 判断字符是否可打印102

210 将字符转换成大写形式103

209 判断字符是否为十六进制值103

213 将输出格式写进字符串变量104

212 使用ASCII字符104

211 将字符转换成小写形式104

215 标志字符串以节省空间105

214 从字符串中读输入105

216 初始化字符串106

217 函数107

第四章 函数107

219 把MAIN当作函数108

218 在函数中使用变量108

221 使用多参数109

220 参数简介109

223 函数返回值110

222 老式C程序中的参数申明110

224 RETURN语句111

225 函数原型112

227 形参和实参113

226 运行时程序库113

230 局部变量114

229 返回类型为非INT型的函数114

228 解决名称冲突114

232 函数的开销115

231 函数如何使用堆栈115

234 申明全局变量116

233 C如何存储局部变量116

236 解决全局和局部变量的名称冲突117

235 避免使用全局变量117

238 传值调用118

237 更好地定义全局变量的有效范围118

239 使用传值调用防止参数值变化119

241 获取地址120

240 传址调用120

242 使用变量的地址121

244 只改变指定参数122

243 改变参数的值122

246 记住函数变量的值123

245 使用堆栈进行传址调用123

247 C是如何初始化静态变量的124

249 PASCAL关键字的影响125

248 使用PASCAL调用顺序125

252 递归函数126

251 CDECL关键字126

250 混合编程示例126

253 递归阶乘函数127

255 进一步理解递归128

254 另一个递归的例子128

257 判断是否要使用递归129

256 直接递归与间接递归129

258 为什么递归函数慢130

261 传递指定的数组元素131

260 将字符串传递给函数131

259 如何消除递归131

263 使用CONST不会阻止参数值的修改132

262 形式参数中的CONST132

265 指针的使用与字符串的申明133

264 无界字符串的申明133

268 应用外部变量134

267 外部变量134

266 C是如何使用堆栈处理字符串参数的134

269 外部静态变量135

271 调用结构和基指针136

270 VOLATILE关键字136

272 调用汇编语言函数137

273 从汇编语言函数中返回值138

277 范围139

276 AUTO关键字139

274 没有返回值的函数139

275 不使用参数的函数139

280 标识符的可见性140

279 名称空间和标识符140

278 范围的分类140

283 支持个数可变的参数141

282 支持参数个数可变的函数141

281 DURATION141

284 VA_START、VA_ARG和VA_END是如何工作的142

285 创建支持多参数多类型的函数143

287 显示字符输出145

286 从键盘读入字符145

第五章 键盘操作145

290 联合使用GETCHAR和PUTCHAR146

289 将键盘输入赋给字符串146

288 缓冲输入146

292 使用直接I/O读入字符147

291 记住,GETCHAR和PUTCHAR都是宏147

294 知道何时使用‘\R’和‘\N’148

293 不显示字符的直接键盘输入148

296 将按键放回键盘缓存149

295 直接输出149

297 使用CPRINTF快速格式化输出150

299 写字符串151

298 快速格式化键盘输入151

301 从键盘读入字符串152

300 使用直接I/O实现更快的字符串输出152

303 以彩色显示输出153

302 以更快的速度从键盘输入字符串153

306 删除屏幕上的当前行154

305 删除当前行到行尾的内容154

304 清除屏幕显示154

309 在屏幕上插入空行155

308 判断行与列的位置155

307 定位光标进行屏幕输出155

310 将屏幕上的文本拷贝到缓冲区156

312 判断文本模式设置157

311 将缓冲区中的文本拷贝到屏幕的指定位置157

313 控制屏幕颜色158

314 指定背景色159

316 使用TEXTBACKGROUND设置背景色160

315 使用TEXTCOLOR设置前景色160

318 决定当前文本模式161

317 控制文本的明暗度161

320 定义文本窗口162

319 在屏幕上移动文本162

322 使用ARCCOSINE(反余弦)164

321 使用整型表达式的绝对值164

第六章 数学164

325 求复数的绝对值165

324 使用ARCTANGENT(反正切)165

323 使用ARCSINE(反正弦)165

327 使用角的余弦166

326 对浮点值进位舍入166

330 使用角的双曲正弦167

329 使用角的正弦167

328 使用角的双曲余弦167

332 使用角的双曲正切168

331 使用角的正切168

334 使用指数169

333 整数相除169

337 使用浮点值的尾数和指数170

336 使用浮点余数170

335 使用浮点型表达式的绝对值170

338 计算X*2E的结果171

340 计算log10x的值172

339 计算自然对数172

343 计算xn的结果173

342 把浮点值分解成整数和小数部分173

341 判断最大值与最小值173

345 生成随机数174

344 计算10x的结果174

347 给随机数生成器赋初值175

346 将随机值映射到指定范围175

349 创建定制的数学错误处理程序176

348 计算数值的平方根176

352 判断可用的盘空间178

351 选择当前驱动器178

第七章 文件、目录和磁盘178

350 判断当前盘驱动器178

354 读入文件分配表(FAT)信息179

353 当心DBLSPACE179

355 磁盘ID180

357 进行BIOS磁盘I/O181

356 绝对扇区读写操作181

359 应用FOPEN打开文件183

358 测试软驱是否准备好183

360 FILE结构184

362 每次读/写文件信息的一个字符185

361 关闭一个打开的文件185

364 判断当前文件位置186

363 文件指针的位置指针186

367 CONFIG.SYS文件的FILES=条目187

366 文件翻译187

365 文件流187

370 进程文件表(PROCESS FILE TABLE)188

369 文件句柄(FILE HANDLES)188

368 使用低级和高级文件I/O188

371 进程文件表入口189

372 系统文件表190

373 显示系统文件表191

374 从流指针中导出文件句柄192

376 重命名文件193

375 进行格式化文件输出193

377 删除文件194

378 判断程序如何访问文件195

380 深入掌握文件属性196

379 设置文件的访问模式196

381 检测文件流错误198

383 刷新I/O流199

382 判断文件的长度199

385 获取文件流的文件句柄200

384 一次关闭所有被打开的文件200

387 使用TMP或TEMP创建临时文件名201

386 使用P_TMPDIR创建临时文件名201

390 为文件搜索命令路径202

389 删除临时文件202

388 创建真正的临时文件202

391 为文件搜索环境入口的子目录203

393 最小化文件I/O操作204

392 打开TEMP目录中的文件204

395 改变当前目录205

394 在目录名中使用反斜杠205

398 删除目录树206

397 删除目录206

396 创建目录206

399 建立完全路径名208

400 分解目录路径209

402 使用低级函数打开和关闭文件210

401 建立路径名210

403 创建文件211

405 判断文件是否结束212

404 进行低级读写操作212

407 为文件句柄翻译指定模式213

406 应用低级文件例行程序213

409 打开多于20个的文件214

408 利用LSEEK定位文件指针214

411 获取文件的日期和时间标记215

410 使用DOS文件服务215

412 利用位域获取文件的日期与时间217

413 设置文件的日期与时间标记218

415 每次读写一个字219

414 把文件日期和时间设置成当前日期和时间219

416 改变文件的长度220

417 控制文件打开操作的读写模式221

418 将缓冲区赋给文件222

419 分配文件缓冲区223

421 读写结构224

420 利用MKTEMP创建唯一文件名224

422 从文件流中读取结构数据225

423 复制文件句柄226

424 强制文件句柄设置227

427 打开文件进行共享访问228

426 文件共享228

425 把文件句柄和文件流联系起来228

428 锁定文件内容229

429 获取更精细的文件锁定控制231

431 打开目录232

430 使用DOS目录232

435 递归读取磁盘文件233

434 反绕目录233

432 读取目录入口233

433 利用目录服务读C:\WINDOWS233

436 判断当前文件位置234

437 打开共享文件流235

439 创建新文件236

438 在指定目录中创建唯一文件236

440 利用DOS服务访问文件237

443 按行写文本239

442 按行读文本239

441 强制二进制或文本文件打开239

446 为什么TEXTCOPY不能拷贝二进制文件240

445 强制二进制文件翻译240

444 应用FGETS和FPUTS240

449 读取格式化的文件数据241

448 舍弃字符241

447 判断文件结尾241

450 根据当前位置定位文件指针242

452 重新打开文件流243

451 获取文件句柄信息243

455 形象表示数组245

454 申明数组245

第八章 数组、指针和结构245

453 数组245

456 数组的内存需求246

458 访问数组元素247

457 初始化数组247

460 使用常量定义数组248

459 通过循环访问数组元素248

462 把数组看作函数249

461 把一个数组传送给函数249

465 判断数组能存放多少个元素250

464 在堆栈中传送数组250

463 区分字符串数组250

467 权衡数组与动态存储的利弊251

466 为大数组使用HUGE内存模式251

469 行与列252

468 多维数组252

471 给二维数组元素赋初值253

470 访问二维数组中的元素253

473 通过循环显示二维数组254

472 判断多维数组占用的内存254

475 初始化多维数组255

474 遍历三维数组255

476 把二维数组传送给函数256

478 C是如何存放多维数组的257

477 把多维数组当作一维数组257

480 以数组为成员的结构数组258

479 按行存放与按列存放258

481 联合259

482 使用联合节省内存260

484 应用REGS联合261

483 使用REGS——一种典型的联合261

485 位字段结构262

487 位字段结构的取值范围263

486 形象表示位字段结构263

489 对分查找264

488 在数组中查找指定的值264

492 冒泡排序法265

491 对数组进行排序265

490 应用对分查找法265

493 应用冒泡排序法266

495 应用选择排序法267

494 选择排序法267

496 SHELL(希尔)排序法268

498 快速排序法269

497 应用SHELL排序法269

499 应用快速排序法270

501 对字符串数组排序271

500 上述排序方法的遗留问题271

502 利用LFIND搜索字符串272

504 利用BSEARCH搜索已排序数组273

503 利用LSEARCH搜索数值273

505 利用QSORT对数组排序274

506 判断数组元素的个数275

509 C是如何把数组当成指针的276

508 判断变量的地址276

507 把指针理解为地址276

511 申明指针变量277

510 对数组应用取地址运算符(&)277

513 使用指针值278

512 间接访问指针278

516 指针的增值与减值279

515 指针运算279

514 指针与函数参数的使用279

518 利用指针遍历数组280

517 联合应用指针引用与增值280

521 指针数组281

520 创建返回值为指针的函数281

519 使用返回值为指针的函数281

523 遍历字符串数组282

522 形象表示字符串数组282

525 使用指向一个指向字符串的指针的指针283

524 把字符串数组当成指针283

529 使用指向函数的指针284

528 创建指向函数的指针284

526 利用指针申明字符串常量284

527 VOID类型指针284

530 使用三级指针285

533 结构标记是结构的名称286

532 结构是变量申明的模板286

531 结构286

535 结构成员287

534 用不同的方式申明结构287

537 应用结构288

536 形象表示结构288

539 在函数内部改变结构289

538 把结构传递给函数289

541 使用POINTER→MEMBER格式290

540 (*POINT).MEMBER间接引用290

543 结构定义的范围291

542 使用无标记结构291

546 使用嵌套结构292

545 进行结构I/O292

544 初始化结构292

548 创建结构数组293

547 包含数组的结构293

550 BIOS服务295

549 DOS系统服务295

第九章 DOS和BIOS服务295

551 寄存器296

552 标志寄存器297

554 利用BIOS访问指针298

553 软件中断298

556 可能的DOS副作用300

555 CONTROL+BREAK信息300

558 控制声音301

557 暂时挂起程序301

559 获取国家专用的信息302

561 访问和控制磁盘传输区303

560 磁盘传输地址303

562 BIOS键盘服务304

563 获取BIOS设备列表306

564 控制串行口I/O307

566 获取扩展DOS错误信息309

565 利用BDOS访问DOS服务309

567 判断BIOS常规内存数量310

569 把远端地址分解为段地址和偏移地址311

568 创建远指针(FAR PRINTER)311

571 读段寄存器设置312

570 判断自由核心内存312

574 常规内存的分布314

573 常规内存314

第十章 内存管理314

572 内存的类型314

576 为什么PC和DOS限制于1MB315

575 访问常规内存315

578 扩充内存316

577 从段和偏移量中产生地址316

579 使用扩充内存317

581 实模式和保护模式318

580 扩展内存318

583 高端内存区319

582 访问扩展内存319

585 各种堆栈配置320

584 堆栈320

588 给内存区域赋值321

587 使用_STKLEN控制堆栈空间321

586 判断程序的当前堆栈大小321

590 拷贝内存区域直到某指定字节322

589 拷贝内存区域322

592 交换两个相邻字符串字节323

591 比较两个无符号字符数组323

593 分配动态内存324

595 不再需要时释放内存325

594 再谈类型转换325

597 堆326

596 利用CALLOC函数分配内存326

598 解决64Kb堆限制327

599 从堆栈中分配内存328

600 分配巨型数据329

602 BRK函数330

601 改变被分配内存区域的大小330

604 快速堆检测331

603 检测堆331

605 填充自由堆空间332

606 检测特定的堆入口333

608 访问指定内存单元334

607 遍历堆入口334

609 向内存中置数335

611 访问端口值336

610 PC端口336

612 CMOS337

614 微型内存模式338

613 内存模式338

616 中型内存模式339

615 小型内存模式339

618 大型内存模式340

617 压缩内存模式340

619 巨型内存模式341

620 判断当前的内存模式342

622 将日期和时间从秒的形式转换成ASCII码343

621 获取当前日期与时间343

第十一章 日期和时间343

625 判断程序的耗时344

624 延迟若干毫秒344

623 DAYLIGHT SAVINGS ADJUSTMENT344

627 获取数据串345

626 比较两个时间345

629 读BIOS计时器346

628 获取时间串346

630 使用当地时间347

632 获取DOS系统时间348

631 使用格林威治平时348

633 获取系统日期349

635 设置DOS系统日期350

634 设置DOS系统时间350

637 利用TIMEZONE计算时差351

636 把DOS日期转换为UNIX格式351

640 利用TZ环境入口352

639 利用TZSET设置时区区域352

638 判断当前时区352

642 获取时区信息353

641 从用户程序中设置TZ环境入口353

644 把日期转换成自1/1/1970以来的秒数354

643 以秒钟的形式设置自1/1/1970午夜以来的系统时间354

646 创建格式化日期和时间串355

645 判断日期的儒略历日期355

647 PC时钟类型357

649 提醒用户输入密码358

648 等候按键358

第十二章 重定向I/O和进程命令行358

650 自己编写密码函数359

654 利用STDOUT和STDIN360

653 联合使用INPUT和OUTPUT重定向360

651 输出重定向360

652 输入重定向360

656 GETCHAR和PUTCHAR361

655 管道(pipe)运算符361

658 确保信息出现在屏幕上362

657 对重定向输入进行编号362

659 自定义MORE命令363

662 创建定时的MORE命令364

661 显示重定向字符的个数364

660 显示重定向行的数目364

663 防止I/O重定向365

665 把重定向输出分割到一个文件中366

664 应用STDPRN文件句柄366

667 在重定向输入内寻找子串的出现367

666 应用STDAUX文件句柄367

668 显示重定向输入的头N行368

670 显示命令行变元的个数369

669 命令行变元369

672 使用引号内的命令行变元370

671 显示命令行370

674 把ARGV当作指针371

673 从命令行中显示文件内容371

676 环境372

675 C是如何知道命令行的372

679 使用命令行数字373

678 对MAIN的参数使用VOID373

677 把ENV当作一个指针373

680 出口状态值374

682 判断是否把MAIN申明为VOID375

681 为出口状态过程使用RETURN375

684 DOS是如何对待环境的376

683 在环境中搜索特定入口376

686 给当前环境添加入口377

685 应用ENVIRON全局变量377

687 给DOS环境添加元素378

689 定义在程序结束时执行的函数379

688 退出当前程序379

691 重复使用目标代码381

690 库381

第十三章 编程工具381

694 常用的库操作382

693 创建库文件382

692 编译C和OBJ文件时出现的问题382

698 连接器383

697 库管理程序的其他功能383

695 列出库文件中的子例行程序383

696 利用库减少编译时间383

701 使用连接器响应文件384

700 使用连接映像384

699 连接器的功能384

703 生成一个简单的MAKE文件385

702 使用MAKE命令简化应用程序的创建385

706 MAKE和命令行386

705 说明用户的MAKE文件386

704 通过MAKE使用多依赖性文件386

708 显现的和隐含的MAKE法则387

707 在MAKE文件中放置多个依赖性387

710 预定义MAKE宏388

709 使用MAKE宏388

712 验证一个MAKE宏389

711 用MAKE执行条件进程389

716 关闭命令显示390

715 因错误结束MAKE文件390

713 再次包含一个MAKE文件390

714 使用MAKE的宏修饰符390

720 为多个依赖文件执行一个MAKE命令391

719 同时激活和改变一个宏391

717 使用文件BUILTINS.MAK391

718 在MAKE中执行出口状态进程391

722 理解CTYPE.H,ISTYPE宏393

721 判断是否有数学协处理器393

第十四章 高级C语言编程393

724 检查系统和路径错误394

723 控制直接的视像394

726 决定操作系统版本号395

725 显示预定义的错误信息395

728 执行一个非本地的GOTO396

727 理解可移植性396

730 激活一个内部的DOS命令397

729 获得进程ID(PID)397

731 使用-PSP全局变量398

734 放置一个枚举类型来使用399

733 使用枚举类型399

732 在变量申明中使用CONST修饰符399

737 保存和恢复寄存器400

736 分配一个特殊的值给枚举类型400

735 理解一个枚举值400

740 建立一个链接的列表401

739 申明一个链接的列表结构401

738 动态列表简介401

742 理解链表转移402

741 一个简单的链表例子402

744 增加一个列表入口403

743 创建一个更有用的列表403

746 显示一个存储的目录404

745 插入一个列表入口404

747 从一个列表中删除一个元素405

748 使用一个双向链表406

750 理解NODE->PREVIOUS->NEXT407

749 创建一个简单的双向链表407

751 从一个双向链表中移走一个元素408

752 在一个双向链表中插入一个元素409

754 派生一个子进程410

753 理解子进程410

755 使用其他的SPAWNLXX函数411

756 使用SPAWNVXX函数412

757 执行一个子进程413

758 使用其他的EXECLXX函数414

760 理解覆盖415

759 使用EXECVXX函数415

762 PC机的中断416

761 理解中断416

764 判断一个中断向量417

763 使用中断关键字417

767 生成简单的中断处理器418

766 使能与禁止中断418

765 设置一个中断向量418

768 链接一个二次中断419

770 捕获PC机时钟420

769 生成一个中断420

771 理解致命错误421

773 一个更完全的致命错误处理器422

772 C语言中的致命错误处理422

775 生成一个Ctrl+Break处理器424

774 恢复改变过的中断424

778 直接插入内部函数425

777 使用指令集选择改善性能425

776 在用户的致命错误处理器中使用DOS服务425

780 理解快速函数调用426

779 使能和禁止内在函数426

784 理解代码紧缩427

783 理解冗余载入禁止427

781 _FASTCALL参数传递的法则427

782 理解不变代码427

786 理解循环引入和强度削减428

785 理解循环紧缩428

790 基本类型与派生类型429

789 理解C语言的4个基本类型429

787 消除普通的子表达式429

788 标准C语言转换429

792 理解连接430

791 理解初始化值430

795 理解左值(LVALUE)431

794 申明和定义431

793 理解临时申明431

798 谨慎使用远指针432

797 使用段寄存器关键字432

796 理解右值(RVALUE)432

800 数学协处理器语句433

799 理解正常化的指针433

802 防止循环包含434

801 理解变量中的CDECL和PASCAL434

806 理解COUT I/O流435

805 从简单的C++程序开始435

第十五章 C++入门435

803 C++介绍435

804 C++源文件的差异435

808 用COUT连接不同的数据类型436

807 使用COUT输出值和变量436

812 输出到CERR437

811 如果钟情PRINTF,使用PRINTF437

809 显示十六进制和八进制数值437

810 重定向COUT437

815 理解CIN如何选择数据域438

814 CIN不要使用指针438

813 用CIN得到输入438

820 理解IOSTREAM.H头文件包含的内容439

819 使用FLUSH操纵符快速输出439

816 理解输入输出流如何获得变量类型439

817 使用CLOG实现输出439

818 CIN、COUT、CERR和CLOG是类的实例439

823 C++支持匿名联合440

822 C++增加的新关键字440

821 C++需要函数原型440

826 控制COUT的输出宽度441

825 提供缺省参数值441

824 分辨全局范围441

828 指定COUT的填充字符442

827 使用SETW设置COUT宽度442

829 左对齐和右对齐COUT的输出443

831 以小数或科学记数格式显示数值444

830 控制COUT显示浮点数字的数目444

833 设置输入输出基数445

832 恢复COUT至默认值445

836 使用按位运算符及COUT446

835 在函数原型中放置默认参数值446

834 在需要的地方定义变量446

840 理解自由空间447

839 在C++中使用ENUM关键字447

837 理解迟缓(或短路)计算447

838 在C++中使用CONST关键字447

843 无自由空间的测试448

842 为多个数组分配内存448

841 用NEW分配内存448

846 释放内存至自由空间449

845 使用FAR指针和NEW运算符449

844 关于堆空间449

848 给函数传递引用450

847 理解C++中的引用450

851 使用引用的规则451

850 用三种方法传递参数451

849 防止隐藏对象451

853 使用INLINE关键字452

852 函数可返回引用452

854 使用C++的ASM关键字453

858 简单的TEE命令454

857 简单过滤器程序454

855 用CIN读字符454

856 用COUT写字符454

861 文件结束测试455

860 更好的FIRST命令455

859 简单的FIRST命令455

863 理解连接规范456

862 用ENDL产生新行456

866 重载函数的第二个例子457

865 重载函数457

864 理解重载457

867 避免不明确的重载458

870 改变NEW运算符的缺省处理器459

869 在循环中使用CIN.GETLINE459

868 使用CIN每次读一行459

872 判断C++编译460

871 用SET_NEW_HANDLER函数设置NEW处理器460

874 结构中定义函数成员461

873 理解C++中的结构461

877 给成员函数传递参数462

876 在结构外定义成员函数462

875 在结构内定义成员函数462

879 不同结构具有同名函数成员463

878 同一结构的多个变量463

880 同名成员不同函数464

883 理解为什么使用对象465

882 理解面向对象编程465

第十六章 对象465

881 理解对象465

884 把程序分解成对象466

886 理解C++的类467

885 理解对象和类467

889 理解继承468

888 理解多态性468

887 理解封装468

891 创建简单类模型469

890 类和结构的选择469

892 实现简单类的程序470

895 在申明中使用或省略类名471

894 理解作用域分辨符471

893 定义类构件471

898 理解PRIVATE:标志472

897 理解信息隐藏472

896 理解PUBLIC:标志472

900 使用公有和私有数据473

899 理解PROTECTED:标志473

902 公有方法常称为接口函数474

901 决定什么隐藏什么公开474

903 在类外定义类函数475

906 对象实例共享代码476

905 理解对象实例476

904 在类的内部和外部定义方法476

907 存取类成员477

910 另一种类初始化方法478

909 类初始化478

908 全局分辨符478

912 静态数据成员479

911 理解静态类成员479

913 静态成员函数480

915 内联函数申明481

914 成员函数申明481

917 类和联合482

916 决定内联和非内联函数的使用482

919 友元函数483

918 匿名联合483

920 友元类484

922 使用含参数的构造函数485

921 构造函数485

第十七章 常见的类函数485

923 使用构造函数486

925 使用含参数的构造函数487

924 程序何时执行构造函数487

927 用构造函数分配内存488

926 在构造函数中解决名字冲突488

928 方便简洁地处理内存分配489

930 重载构造函数490

929 构造函数的缺省参数490

931 获得重载函数的地址491

933 析构函数492

932 使用含单个参数的构造函数492

935 为何使用析构函数493

934 使用析构函数493

936 程序何时调用析构函数494

937 使用复制构造函数495

938 显式构造函数496

941 局部类497

940 嵌套类497

939 类作用域497

943 创建类变量数组498

942 成员名和参数名冲突的解决498

946 创建运算符成员函数499

945 运算符重载499

944 构造函数和类数组499

947 重载加运算符500

948 重载减运算符501

949 重载前置和后置增量运算符502

950 重载前置和后置减量运算符503

952 用友元函数重载运算符504

951 重温运算符重载限制504

954 用友元函数重载++或--运算符505

953 友元函数重载运算符的限制505

955 用友元函数重载运算符的原因506

957 重载DELETE运算符508

956 重载NEW运算符508

958 为数组重载NEW或DELETE509

959 重载数组下标运算符[]511

960 重载函数调用运算符()513

962 重载逗号运算符514

961 重载指针运算符->514

963 抽象515

964 为类指针分配内存516

965 释放类指针517

966 取消输入前的空格518

969 类成员函数使用INLINE关键字519

968 在头文件中定义类519

967 类库519

971 类数组的释放520

970 类数组初始化520

972 创建初始化的类数组522

973 用多参数的构造函数初始化数组523

974 创建初始化和未初始化数组524

975 使用类数组525

977 内联类代码允许改变526

976 数组如何使用内存526

978 静态存储区527

982 C++的输入流528

981 C++的输出流528

第十八章 用C++输入输出528

979 I/O流操作和STDIO同步528

980 C++的I/O流528

984 设置格式标志529

983 用IOS成员格式化输入和输出529

987 检测当前格式标志530

986 重载SETF函数530

985 清除格式标志530

989 使用PRECISION函数532

988 设置所有标志532

992 用操纵算子格式化I/O533

991 理解操纵算子533

990 使用FILL函数533

994 创建自己的插入函数534

993 比较操纵算子和成员函数534

995 重载抽取运算符535

998 抽取函数演示536

997 创建自己的抽取函数536

996 重载COUT的插入运算符的另一种方法536

1000 创建无参数的操纵算子537

999 创建自己的操纵算子函数537

1003 打开文件流538

1002 老式流类库538

1001 使用有参数的操纵算子538

1005 读和写文件流数据539

1004 关闭文件流539

1007 把文件流操作放到一起540

1006 检查文件操作的状态540

1009 流缓冲类541

1008 执行二进制拷贝操作541

1011 用READ读二进制数据542

1010 简单的流缓冲例子542

1012 用WRITE写二进制数据543

1013 使用GCOUNT成员函数544

1015 使用GETLINE方法545

1014 使用重载的GET函数545

1016 文件结束的检测546

1017 使用IGNORE函数547

1020 获得文件流的当前位置548

1019 使用PUTBACK函数548

1018 使用PEEK函数548

1022 用SEEKG和SEEKP实现随机访问549

1021 控制文件流指针549

1024 判断I/O流的当前状态550

1023 在文件内操纵文件指针位置550

1026 字符串流551

1025 数组I/O类551

1028 更好理解OSTRSTREAM552

1027 用ISTRSTREAM写字符串552

1030 对输出数组使用PCOUNT553

1029 使用重载ISTRSTREAM形式553

1032 使用STRSTREAM554

1031 用IOS成员函数操纵流数组554

1033 随机访问流数组555

1035 为字符串数组定制插入运算符556

1034 对流数组使用操纵符556

1036 为流数组定制抽取运算符558

1037 I/O流中使用动态数组559

1039 ENDS操纵符560

1038 流数组格式化560

1041 为编译器表明类561

1040 对象调用另一对象561

1043 申明READER类为友元562

1042 重温友元562

1045 消除CLASS类名语句563

1044 另一个友元类演示程序563

1047 名字冲突及友元564

1046 限制友元访问564

1048 C++中的继承566

第十九章 继承及多态性566

1051 基类及派生类的构造函数567

1050 派生类567

1049 基类和派生类567

1052 使用受保护的成员568

1054 公有的和私有的基类继承569

1053 何时使用受保护成员569

1055 受保护的基类继承570

1057 简单的多重继承571

1056 多重继承571

1058 构造函数的顺序和基类572

1059 申明私有基类573

1060 析构函数和多重继承574

1061 基类和派生类间的名字冲突575

1063 继承类何时执行构造函数576

1062 解决类及其基类名字的冲突576

1064 派生类构造函数演示577

1065 如何为基类构造函数传递参数578

1066 派生类内的访问申明579

1068 用虚拟基类避免混淆580

1067 使用派生类的访问申明580

1070 互为友元582

1069 虚拟基类582

1071 派生类如何成为基类583

1072 派生类使用保护成员584

1073 定义静态类数据585

1075 直接访问静态数据成员587

1074 初始化静态数据成员587

1077 静态成员函数588

1076 静态私有数据成员588

1079 类成员使用增强类型数据589

1078 公有静态函数的直接访问589

1080 嵌套类590

1082 在方法函数中插入汇编语句591

1081 子类和超类591

1084 THIS指针592

1083 类成员可递归592

1085 THIS指针与其他指针的不同593

1088 对不同的类使用相同的指针594

1087 指向类的指针594

1086 先期和迟后联编594

1090 虚拟函数595

1089 使用指针时基类和派生类名字的冲突595

1091 继承虚拟属性596

1092 虚拟函数是分层的597

1093 实现多态性598

1094 纯虚函数599

1096 使用虚拟函数600

1095 抽象类600

1099 先期和迟后联编演示601

1098 先期联编和迟后联编间的判定601

1097 深入先期和迟后联编601

1100 定义输出流操纵符602

1102 对类使用SIZEOF603

1101 查看IOSTREAM.H的时机己成熟603

1104 类转换604

1103 PRIVATE、PUBLIC、PROTECTED也能用于结构604

1105 在构造函数中转换数据605

1106 一个类赋给另一个类606

1108 判断运算符提高还是降低可读性607

1107 友元转换函数607

1110 使用简单模板609

1109 模板609

第二十章 通用函数及模板609

1112 支持多种类型的模板610

1111 更好地理解通用函数610

1114 显式重载通用函数611

1113 多种通用类型模板的更多知识611

1115 通用函数的限制612

1116 使用通用函数613

1117 通用冒泡排序函数614

1118 用通用函数压缩数组615

1120 模板同样消除类复制616

1119 何处放置模板616

1122 使用通用类617

1121 通用类617

1123 创建含两个通用数据类型的通用类619

1125 通用数组类620

1124 创建含参数的操纵符620

1128 简单的异常处理器623

1127 基本的异常处理形式623

第二十一章 异常处理及类型转换623

1126 异常处理623

1130 异常具有特定类型624

1129 THROW语句624

1132 函数内的局部TRY块625

1131 TRY块内的函数抛出异常625

1133 程序何时执行CATCH626

1134 对单个TRY块使用多个CATCH语句627

1136 捕获单个TRY块的所有异常628

1135 对异常使用省略符(…)628

1137 捕获单个TRY块的显式和通用异常629

1138 异常的限制630

1139 重新抛出异常631

1140 异常处理的应用632

1142 用缺省函数参数避免错误633

1141 使用缺省的函数参数633

1144 创建转换函数634

1143 缺省参数和函数重载634

1145 使用转换函数提高类型的可移植性635

1147 C++中新的强制转换运算符636

1146 转换函数和重载函数636

1148 CONST_CAST运算符637

1149 DYNAMIC_CAST运算符638

1151 STATIC_CAST运算符639

1150 REINTERPRET_CAST运算符639

1153 使用名字空间640

1152 名字空间640

1156 为运行时类型标识使用TYPEID641

1155 运行时类型标识641

1154 对名字空间用Using语句641

1157 TYPE_INFO类642

1159 在类内使用MUTABLE关键字644

1158 MUTABLE关键字644

1162 使用布尔数据类型645

1161 布尔数据类型介绍645

1160 思考MUTABLE关键字645

1164 定义字符串类型的特性647

1163 创建字符串类型647

第二十二章 创建可重用的类647

1165 创建STRINGS类648

1167 STRINGS类执行I/O操作649

1166 编写STRINGS类的构造函数649

1168 编写STRINGS类的赋值函数650

1169 重载+运算符以连接字符串对象651

1170 从STRINGS对象中移走字符串652

1171 重载关系运算符653

1173 把STRINGS对象转换成字符数组654

1172 判断STRINGS对象的大小654

1175 演示STRINGS对象655

1174 把STRINGS对象用作字符数组655

1177 另一个STRINGS示例656

1176 为STRINGS类创建头文件656

1178 用C++的类创建双向链表657

1179 双向链表类成员658

1181 运算符重载函数659

1180 GETNEXT和GETPREVIOUS函数659

1183 LINKED_LIST类660

1182 继承LIST_OBJECT类660

1185 LINK_LIST的REMOVE函数661

1184 LINKED_LIST的STORE函数661

1187 以前向的顺序显示LINKED_LIST662

1186 GETSIART和GETEND函数662

1189 查找链表663

1188 以反向顺序显示LINKED_LIST663

1190 实现LINKED_LIST的简单程序664

1192 通用LIST_OBJECT类成员666

1191 创建通用的双向链表类666

1193 通用LINKED_LIST类667

1196 通用类用于结构668

1195 通用类用于DOUBLE链表668

1194 通用类用作字符链表668

1197 重载==比较运算符669

1199 对象用于STORE函数670

1198 通用链表的其他实现670

1200 编写判断链表长度的函数671

1201 标准模板库介绍672

第二十三章 标准模板库672

1203 容器673

1202 标准模板库头文件673

1204 使用容器的例子674

1206 前向和可逆容器676

1205 标准模板库的容器介绍676

1207 标准模板库的序列容器677

1209 标准模板库的关联容器678

1208 理解USING NAMESPACE STD语句678

1210 迭代器680

1211 迭代器演示681

1212 更好地理解STL的输入和输出迭代器682

1213 STL的其他送代器683

1215 理解模式684

1214 理解定则684

1217 STL算法的另一个演示685

1216 算法685

1218 STL包含的算法描述686

1219 STL的FOR_EACH算法687

1220 STL的GENERATE_N算法688

1221 STL的RANDOM_SHUFFLE算法689

1222 PARTIAL_SORT_COPY算法691

1223 MERGE算法693

1224 INNER_PRODUCT算法694

1225 向量696

1226 另一个简单向量程序698

1228 BIT_VECTOR序列容器699

1227 向量和C数组的比较699

1229 简单BVECTOR演示700

1231 LIST容器的通用构件701

1230 LIST类型701

1232 构造LIST对象702

1234 使用ASSIGN成员函数703

1233 往链表中插入对象703

1236 遍历LIST对象704

1235 REMOVE和EMPTY成员函数704

1238 往SLIST序列容器中插入元素705

1237 SLIST类型705

1240 使用DEQUE容器706

1239 DEQUE容器706

1241 ERASE和CLEAR成员函数707

1242 对DEQUE使用[]数组运算符708

1243 对DEQUE用REVERSE迭代器709

1246 简单的MAP示例710

1245 MAP对象710

1244 管理DEQUE的大小710

1247 用成员函数管理MAP711

1249 理解SET(集合)713

1248 控制MAP的大小及内容713

1250 简单的SET演示715

1252 WINDOWS程序和DOS程序之间的不同点717

1251 WIN32编程介绍717

第二十四章 Windows编程入门717

1253 线程介绍718

1254 理解消息719

1255 窗口的构件720

1256 父窗口和子窗口721

1257 创建一般的WINDOWS程序723

1258 资源文件725

1260 定义WINDOWS的句柄类型727

1259 WINDOWS句柄727

1262 回调函数728

1261 GENERIC的头文件728

1264 更精细地查看GENERIC.CPP程序729

1263 WINDOWS应用程序编程接口729

1265 WINMAIN函数730

1266 窗口的创建731

1268 SHOWWINDOW函数732

1267 CREATEWINDOW函数732

1269 REGISTERCLASS函数733

1270 学习更多有关消息的知识735

1271 用TRANSLATEMESSAGE处理消息736

1274 LPCTSTR类型737

1273 简单WINDOWS程序的组成737

1272 用DISPATCHMESSAGE处理消息737

1275 DWORD类型738

1276 WINDOWS预定义的类739

1277 用预定义的类创建简单的窗口740

1279 窗口及控件的格式741

1278 创建窗口时WINDOWS发送WM_CREATE消息741

1280 用扩展的格式创建窗口744

1282 REGISTERCLASSEX API函数746

1281 销毁窗口746

1283 用SETPROP为窗口附加信息747

1284 用ENUMPROPS列出窗口的属性748

1285 回调函数749

1286 MESSAGEBOX函数750

1287 MESSAGEBEEP函数751

1289 消息的流动752

1288 重温消息752

第二十五章 消息及菜单752

1291 PEEKMESSAGE函数754

1290 MSG结构的构件754

1292 POSTMESSAGE函数755

1293 SENDMESSAGE函数756

1296 SETWINDOWSHOOKEX函数757

1295 钩子消息757

1294 REPLYMESSAGE函数757

1297 EXITWINDOWSEX函数759

1299 菜单的结构760

1298 菜单的类型760

1301 POPUP和MENUITEM描述符761

1300 在资源文件中创建菜单761

1303 在应用程序中改变菜单762

1302 为应用程序的窗口增加菜单762

1305 LOADMENU函数763

1304 菜单产生的消息763

1306 MODIFYMENU函数764

1307 用ENABLEMENUITEM控制菜单766

1308 用APPENDMENU扩充菜单767

1309 用DELETEMENU删除指定的菜单768

1310 在菜单项中使用加速键769

1311 简单的加速表770

1312 更好地理解资源文件的结构771

1313 字符串表772

1315 用LOADSTRING把字符串表装入程序773

1314 定制的资源773

1316 列出资源文件的内容774

1317 对资源文件用ENUMRESOURCETYPES776

1318 用FINDRESOURCE把资源装入程序777

1320 定义对话框类型779

1319 对话框779

第二十六章 对话框779

1322 对话框模板的构件780

1321 对话框使用键盘780

1324 对话框定义的构件781

1323 创建特定的对话框模板781

1326 用DIALOGBOX宏显示对话框782

1325 定义对话框的控件782

1327 对话框的消息循环784

1329 CREATEDIALOG宏785

1328 深入控件的处理785

1330 CREATEDIALOGPARAM函数786

1331 对话框的缺省消息处理程序787

1332 用DLGDIRLIST函数创建对话列表框788

1333 响应用户在列表框中的选择790

1334 关闭对话框791

1336 响应鼠标事件792

1335 用户输入792

1337 WM_MOUSEMOVE消息793

1338 读取鼠标按键794

1340 虚键795

1339 响应键盘事件795

1342 进一步使用WM_KEYDOWN消息797

1341 使用虚键797

1344 交换鼠标按键799

1343 设置和返回鼠标的双击时间799

1345 判断用户是否按了一个键800

1347 理解不同的滚动条类型801

1346 滚动条介绍801

1348 SHOWSCROLLBAR函数802

1350 滚动条消息803

1349 滚动条的位置及范围803

1351 获取滚动条的当前设置804

1352 滚动窗口内容805

1353 WM_SIZE消息807

1354 WM_PAINT消息808

1355 程序必须捕获的其他滚动条消息809

1356 使滚动条有效和无效811

1357 使用SCROLLDC函数812

1359 全局及局部内存813

1358 WIN32的内存模型813

第二十七章 WINDOWS的内存管理813

1360 虚拟内存814

1361 重温堆815

1362 从全局堆中分配内存块816

1363 用GLOBALREALLOC动态改变堆的大小817

1364 丢弃已分配的内存块818

1366 GLOBALLOCK和GLOBALHANDLE819

1365 使用GLOBALFREE函数819

1367 检查计算机的内存821

1368 在进程中创建堆822

1369 用堆函数管理进程指定的内存823

1370 检查从堆中分配的内存大小824

1371 分配虚拟内存块825

1372 理解保护页827

1373 更好地理解虚拟内存块828

1374 释放虚拟内存829

1375 管理虚拟内存页830

1376 更好地理解进程831

第二十八章 进程及线程831

1377 创建进程832

1378 结束进程837

1379 产生子进程838

1381 运行独立的子进程839

1380 进一步使用子进程839

1382 更好地理解线程840

1384 确定何时不创建线程841

1383 估计对线程的需要841

1385 创建简单线程的函数842

1386 查看线程的启动843

1388 确定线程堆栈的大小844

1387 操作系统创建线程的步骤844

1390 处理线程的执行时间845

1389 获得当前线程或进程的句柄845

1391 管理多个线程的处理时间846

1392 更好地理解GETQUEUESTATUS函数847

1393 处理无句柄的异常848

1394 结束线程849

1396 操作系统如何安排线程850

1395 确定线程或进程的ID850

1398 理解WINDOWS的优先级类851

1397 优先级介绍851

1399 改变进程的优先级类852

1400 设置线程的相对优先级853

1401 获取线程的当前优先级854

1403 线程的暂停及继续855

1402 获取线程的上下文855

1405 定义五个主要的同步对象856

1404 线程同步856

1406 创建临界区857

1408 用WAITFORSINGLEOBJECT同步两个线程858

1407 使用简单的临界区858

1409 用WAITFRMULTIPLEOBJECTS同步多个线程860

1410 创建互斥体861

1411 在简单的程序中使用互斥体862

1412 使用信号量863

1413 简单的事件处理程序865

1416 更好地理解设备描述表867

1415 使用图形设备接口的原因867

第二十九章 图形设备接口867

1414 理解图形设备接口867

1419 获取窗口的设备描述表868

1418 理解原点及范围868

1417 使用私有设备描述表868

1420 为打印机创建设备描述表869

1422 理解CREATEDC的危险873

1421 用CREATECOMPATIBLEDC创建内存设备描述表873

1423 使用CREATEFONT函数874

1424 使用ENUMFONTFAMILIES函数878

1425 用CREATEFONTINDIRECT显示多个字体879

1426 获取设备的能力880

1427 用GETSYSTEMMETRICS函数分析窗口884

1429 获取整个窗口的设备描述符887

1428 理解GETSYSTEMMETRICS的使用887

1430 释放设备描述表888

1432 理解设备相关的位图889

1431 由设备描述表获得窗口的句柄889

第三十章 位图、图元文件及图标889

1433 理解设备无关位图890

1434 创建位图892

1435 显示位图893

1436 创建DIB位图895

1437 用某种模式填充矩形896

1438 使用SETDIBITS897

1439 用SETDIBITSTODEVICE在指定的设备上输出位图898

1440 理解图元文件899

1441 创建并显示图元文件900

1442 枚举增强型图元文件901

1443 使用GETWINMETAFILEBITS函数902

1444 理解图标903

1445 创建图标904

1446 从资源中创建图标905

1447 使用CREATEICONINDIRECT函数906

1448 使用LOADICON函数907

1449 用LOADIMAGE装入多种图形类型908

1451 管道、资源、设备及文件的介绍911

1450 理解WINDOWS的文件I/O911

第三十一章 WINDOWS的输入及输出911

1452 用CREATEFIL函数打开文件912

1453 CREATEFILE用于不同的设备916

1455 重温文件指针918

1454 使用文件句柄918

1456 用WRITEFILE写文件919

1457 用READFILE读文件921

1459 用文件映射共享数据923

1458 关闭文件923

1460 把文件映射成虚拟内存924

1461 把文件的视图映射到当前的进程中926

1463 理解文件属性927

1462 打开有名的文件映射对象927

1464 获取并改变文件的属性928

1465 获取文件的大小929

1467 创建目录930

1466 获取文件的时间标志930

1468 获取并设置当前的目录931

1469 获取WINDOWS及系统的目录932

1471 拷贝文件933

1470 删除目录933

1473 删除文件934

1472 移动及重命名文件934

1474 用FINDFIRST找出文件935

1475 使用FINDNEXTFILE936

1477 用FINDFILE函数根据属性查找文件937

1476 用FINDCLOSE关闭查找句柄937

1478 用SEARCHPATH代替FIND查找文件938

1480 创建临时文件939

1479 获取临时路径939

1481 CREATENAMEDPIPE函数940

1482 连接命名管道943

1483 调用命名管道945

1484 断开与命名管道的连接946

1486 使用异步输入及输出947

1485 更好地理解异步处理947

1488 使用设备内核对象的异步I/O948

1487 OVERLAPPED结构948

1490 设置较高的或较低的限额949

1489 工作集大小的限额949

1491 GETLASTERROR函数950

1492 用FORMATMESSAGE格式化错误消息951

1493 使用事件内核对象的异步I/O953

1495 I/O结束端口介绍954

1494 WAITFORMULTIPLEOBJECTS用于异步I/O954

1496 警报I/O用于异步处理955

1498 READFILEEX及WRITEFILEEX956

1497 警报I/O仅用于WINDOWS NT956

1499 使用回调的完成例程957

1502 .NET环境的其他优势958

1501 .NET应用程序958

第三十二章 .NET环境958

1500 .NET环境958

1503 Visual Studio959

1506 中间语言960

1505 元数据960

1504 公共语言运行时间960

1508 .NET通用类型961

1507 如何使用.NET应用程序961

1510 元数据不是.NET的新生事物962

1511 .NET应用程序963

1514 反射964

1513 引用和变量类型964

1515 交互管理数据965

1517 创建和编译第一个C#程序966

1518 Console.WriteLine函数967

1522 使用加号连接字符串969

1521 字符串中的反斜杠符969

1523 使用Console.WriteLine显示数值970

1525 使用占位符格式化输出971

1524 必须为每个占位符指定值971

1526 在输出格式中指定精度972

1527 使用###和000格式化输出973

1528 C#的Main函数974

1530 访问命令行变量975

1529 在Main函数中使用void关键字975

1531 定义多个Main976

1532 C#关键字977

1535 创建引用类型变量978

1534 创建值类型变量978

1533 研究C#类型978

1537 使用未赋值变量作为参数979

1536 必须给变量赋值979

1539 定义只读变量980

1538 C#不支持#define和#include命令980

1541 通过检查变量来检测溢出错误981

1540 在C#中创建枚举981

1542 类型转换982

1544 C#运算符983

1543 转换函数983

1545 C#运算符的优先级984

1546 在自增和自减运算符之间避免空格985

1547 不安全的代码986

1548 C#认为sizeof运算符不安全987

1550 在C#中判断变量的值988

1549 在C#中进行判断988

1552 使用foreach遍历数组元素989

1551 C#程序中的

热门推荐