《C语言开发手册 典藏版》PDF下载

  • 购买积分:21 如何计算积分?
  • 作  者:薛园园等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2011
  • ISBN:9787121121203
  • 页数:794 页
图书介绍:本书分4篇,共29章,分别介绍了C语言基础、C语言进阶、C语言的接口技术和现代C语言的扩展。首先,介绍了C语言及其开发环境,并全面介绍了C语言的基本语法知识;接着,详细讲解了C语言的一些高级程序应用;然后,介绍了C语言与其他主流编程语言的接口;最后,讲解了现代C语言的一些扩展应用和高级技术。

第1篇C语言基础篇 2

第1章C语言概述 2

1.1 C语言发展历史 2

1.2 C语言的特点 3

1.2.1 C语言的基本特点 3

1.2.2 C语言的优点 4

1.2.3 C语言的缺点 5

1.3 C语言的标准 5

1.3.1 C标准概述 5

1.3.2 C语言的新标准 6

1.3.3编译器对C标准的支持 10

1.4 C语言开发流程 11

1.4.1功能分析 11

1.4.2划分任务 11

1.4.3编写源代码 12

1.4.4编译和链接 12

1.4.5修改源代码 13

1.4.6功能测试 13

1.4.7发布程序 13

1.4.8维护和修改 13

1.5第一个C程序 13

1.5.1创建项目 14

1.5.2输入源代码 15

1.5.3编译链接 16

1.5.4调试 16

1.6 C程序构成分析 17

1.6.1头文件 17

1.6.2主函数 17

1.6.3其他组成部分 18

1.7良好的编程规范 21

1.7.1完备和详尽的程序注释 21

1.7.2整齐的代码书写格式 21

1.7.3简洁清晰的命名 22

1.8 C语言在不同领域的扩展应用 22

1.8.1单片机方面 22

1.8.2 LabVIEW方面 22

1.8.3 LabWindows/CVI方面 23

1.8.4 MATLAB方面 23

1.8.5 JavaScript方面 23

1.8.6并行计算方面 24

1.8.7 Linux平台 24

1.9小结 24

第2章 典型的C语言开发环境 25

2.1 C语言开发环境简介 25

2.1.1 C语言开发环境的构成 25

2.1.2典型的C语言开发环境 26

2.2使用Turbo C开发 30

2.2.1 Turbo C的开发环境简介 30

2.2.2 Turbo C的配置文件 31

2.2.3用Turbo C创建C程序 31

2.2.4编译链接程序 32

2.2.5运行程序 33

2.3使用Visual Studio开发 34

2.3.1 Microsoft VisualC++++的开发环境简介 34

2.3.2使用Visual Studio 2008创建C程序 35

2.3.3编译链接程序 38

2.3.4调试运行程序 38

2.4使用Dev-C++开发 38

2.4.1 Dev-C++的开发环境简介 39

2.4.2 Dev-C++开发环境的设置 39

2.4.3使用Dev-C++建C程序 41

2.4.4编译和运行程序 41

2.4.5升级Dev-C++ 42

2.5使用Code∶∶Blocks开发 42

2.5.1 Code∶∶Blocks的开发环境简介 42

2.5.2 Code∶∶Blocks开发环境的设置 43

2.5.3使用Code∶∶Blocks创建C程序 45

2.5.4编译运行程序 46

2.6小结 46

第3章C语言数据类型 47

3.1数据的存储 47

3.1.1内存单元 47

3.1.2数据的存储 48

3.1.3程序在内存中的映射 49

3.2数据类型简介 49

3.2.1基本类型 49

3.2.2构造类型 51

3.2.3指针类型 51

3.2.4空类型 51

3.3标识符和关键字 51

3.3.1标识符 52

3.3.2关键字 52

3.4分隔符 53

3.4.1单分隔符 54

3.4.2组合分隔符 54

3.5常量 54

3.5.1直接常量 54

3.5.2符号常量 55

3.6变量 58

3.6.1变量声明 58

3.6.2变量初始化 59

3.7整型数据 60

3.7.1整型数据的声明 60

3.7.2整型数据的存储 61

3.7.3整型常量 65

3.7.4整型数据的输入 66

3.7.5整型数据的输出 68

3.8字符型数据 69

3.8.1字符型变量的声明 69

3.8.2字符型的存储 70

3.8.3字符型常量 71

3.8.4转义字符 72

3.8.5字符型数据的输入 73

3.8.6字符型数据的输出 74

3.9浮点型数据 75

3.9.1浮点型数据的声明 75

3.9.2浮点型数据的存储 76

3.9.3浮点型常量 77

3.9.4浮点型数据的输入 78

3.9.5浮点型数据的输出 79

3.10类型转换 80

3.10.1混合运算中的类型转换 80

3.10.2强制类型转换 83

3.11 C99新增数据类型 84

3.12小结 86

第4章 运算符和表达式 87

4.1运算符 87

4.1.1运算符概述 87

4.1.2算术运算符 88

4.1.3赋值运算符 90

4.1.4关系运算符 92

4.1.5逻辑运算符 93

4.1.6条件运算符 94

4.1.7位运算符 95

4.1.8其他运算符 98

4.1.9运算符优先级和结合性 102

4.2表达式 104

4.2.1算术表达式 104

4.2.2赋值表达式 105

4.2.3逗号表达式 106

4.2.4关系和逻辑表达式 107

4.3小结 109

第5章C语句及流程控制结构 110

5.1说明语句 110

5.2表达式语句 110

5.3复合语句 111

5.4循环语句 112

5.4.1 while循环语句 112

5.4.2 do…while循环语句 113

5.4.3 for循环语句 114

5.5条件语句 116

5.5.1单分支if条件结构 116

5.5.2双分支if条件结构 116

5.5.3阶梯式if…else…if条件结构 117

5.5.4 if条件结构总结 119

5.6开关语句 120

5.7跳转语句 121

5.7.1 goto跳转语句 121

5.7.2 break跳转语句 122

5.7.3 continue跳转语句 123

5.8函数调用语句 124

5.9空语句 125

5.10返回语句 126

5.11 C语言的流程控制结构 127

5.12小结 128

第6章 格式化输入/输出 129

6.1格式化输出函数printf() 129

6.1.1 print()函数的格式 129

6.1.2 printf()函数的格式字符 130

6.1.3 printf()函数的修饰符 131

6.1.4典型的print()函数实例 134

6.1.5动态设置输出宽度和精度 138

6.1.6 print()函数的返回值 139

6.1.7理解输出列表 140

6.1.8 printf格式化输出函数综合实例 142

6.2格式化输入函数scanf() 143

6.2.1 scan()函数的格式 143

6.2.2 scanf()函数格式字符串 145

6.2.3 scan()函数注意问题 146

6.2.4 scan()函数的返回值 148

6.2.5格式化输入函数scanf()综合实例 148

6.3其他常用的输入/输出函数 149

6.3.1字符读入函数getchar() 149

6.3.2字符读入函数getch() 150

6.3.3字符串读入函数gets() 151

6.3.4字符输出函数putch() 152

6.3.5字符输出函数putchar() 153

6.3.6字符串输出函数puts() 153

6.3.7格式化内存缓冲区输出函数sprintf() 154

6.3.8格式化内存缓冲区输入函数sscanf() 155

6.4小结 156

第7章 数组 157

7.1了解数组 157

7.1.1使用数组的好处 157

7.1.2数组的概念 158

7.1.3数组的维数 160

7.2一维数组 161

7.2.1一维数组的声明 161

7.2.2一维数组的存储 164

7.2.3一维数组的引用 164

7.2.4向函数传递一维数组 166

7.2.5一维数组的初始化 166

7.3二维数组 169

7.3.1二维数组的声明 169

7.3.2二维数组的存储 170

7.3.3二维数组的引用 171

7.3.4二维数组的初始化 173

7.4字符数组和字符串 175

7.4.1一维字符串数组 176

7.4.2了解字符串 177

7.4.3字符串的操作函数 178

7.4.4字符串的输入输出 179

7.4.5二维字符串数组 181

7.5多维数组 182

7.6数组的基本应用 182

7.6.1反转字符串 182

7.6.2查找最大值 183

7.6.3数据排序 185

7.7小结 186

第8章 函数 187

8.1函数的概念 187

8.1.1什么是函数 187

8.1.2函数的分类 188

8.1.3函数的定义 189

8.1.4 main()函数 191

8.2函数的工作过程 192

8.2.1程序结构 192

8.2.2函数执行过程 193

8.3编写函数 193

8.3.1函数头 193

8.3.2返回类型 194

8.3.3参数列表 195

8.3.4函数体 195

8.3.5函数原型 196

8.4函数的参数 197

8.4.1形参和实参 197

8.4.2参数传递过程 198

8.4.3值调用 198

8.4.4引用调用 199

8.4.5数组作为函数参数 201

8.4.6指针作为函数参数 205

8.4.7 main()函数的参数 206

8.5函数调用 208

8.5.1函数调用方式 208

8.5.2被调函数的说明 209

8.5.3函数的返回值 210

8.6几种典型的函数调用形式 212

8.6.1赋值调用与引用调用 212

8.6.2嵌套调用 213

8.6.3递归调用 215

8.7函数及其变量的作用域 221

8.7.1函数的作用域 221

8.7.2函数的变量作用域 221

8.8小结 222

第9章 指针 223

9.1内存和变量 223

9.1.1计算机内存 223

9.1.2变量的存储 224

9.2指针和简单变量 225

9.2.1指针的概念 225

9.2.2创建指针 226

9.2.3初始化指针变量 227

9.2.4指针变量的引用 228

9.2.5给函数传递指针 232

9.3指针变量的赋值 232

9.3.1初始化赋值 232

9.3.2取地址赋值 233

9.3.3指针之间赋值 233

9.3.4数组赋值 233

9.3.5字符串赋值 234

9.3.6函数入口赋值 234

9.4指针和数组的关系 234

9.4.1指针、数组和地址间的关系 234

9.4.2指针变量的运算 236

9.4.3用指针操作数组元素 237

9.5指向多维数组的指针 240

9.5.1理解二维数组的地址 240

9.5.2多维数组的指针表示 242

9.5.3指向多维数组的指针变量 243

9.5.4数组名作为函数的参数 247

9.5.5指向数组的指针小结 250

9.6指针和字符串 251

9.6.1字符串的指针表示 251

9.6.2字符串指针作函数参数 253

9.6.3字符数组和字符指针的区别 254

9.7指针数组 256

9.7.1指针数组的概念 256

9.7.2用指针数组处理字符串 258

9.7.3指针数组作函数参数 259

9.8指向指针的指针 261

9.8.1理解指向指针的指针 261

9.8.2二级指针变量与数组 263

9.9指针和函数 268

9.9.1返回指针的函数 268

9.9.2指向函数的指针 269

9.10指针和const变量 272

9.10.1用const控制指针 273

9.10.2 const的几种特殊用法 274

9.11指针总结 274

9.11.1明确分辨各种指针类型 275

9.11.2正确理解指针 275

9.12小结 276

第10章 结构 277

10.1结构的定义 277

10.2结构变量的定义 278

10.2.1先定义结构,再定义结构变量 279

10.2.2在定义结构的同时,定义结构变量 279

10.2.3直接说明结构变量 279

10.3结构变量的使用 280

10.4结构变量的初始化 281

10.5结构数组 283

10.5.1结构数组的定义和引用 283

10.5.2结构数组的初始化 285

10.5.3结构数组实例 285

10.6结构指针 286

10.6.1定义结构指针 286

10.6.2结构指针的引用 287

10.6.3用指针处理结构数组 289

10.7嵌套结构 291

10.7.1包含数组的结构 291

10.7.2包含指针的结构 292

10.7.3包含结构的结构 292

10.8向函数传递结构 296

10.8.1传递结构变量的值 296

10.8.2传递结构指针到函数 297

10.9小结 298

第11章 联合、枚举和位域 299

11.1联合 299

11.1.1定义联合类型 299

11.1.2定义联合变量 300

11.1.3联合变量成员的引用 301

11.1.4联合变量数组 301

11.1.5联合变量指针 302

11.1.6在结构中嵌套联合类型 303

11.1.7结构和联合的区别 305

11.2枚举 306

11.2.1定义枚举类型 306

11.2.2定义枚举变量 307

11.2.3枚举类型变量的赋值 308

11.3类型说明 310

11.4二进制数据存储 311

11.4.1数据的存储 312

11.4.2不同数据类型的二进制表示 312

11.5位运算 315

11.5.1位逻辑运算符 315

11.5.2移位运算符 318

11.5.3位运算的复合赋值运算符 318

11.5.4位运算的用途 319

11.6位域 320

11.6.1定义位域结构 320

11.6.2位域变量的声明 321

11.6.3位域的使用 322

11.6.4位域与联合的使用 323

11.7小结 324

第12章 预处理 325

12.1预处理简介 325

12.1.1预处理功能 325

12.1.2预处理命令 325

12.2宏定义命令 326

12.2.1无参数的宏定义 326

12.2.2带参数的宏定义 329

12.2.3 #undef命令 331

12.2.4预处理操作符#和 331

12.3文件包含指令 334

12.4条件编译指令 335

12.4.1 #if、 #else、 #endif命令 336

12.4.2 #elif命令 337

12.4.3 #ifdef、 #ifndef命令 339

12.4.4使用#defined和#undef 340

12.5其他预处理命令 340

12.5.1预定义的宏名 340

12.5.2重置行号和文件名命令#line 341

12.5.3修改编译器设置命令#pragma 342

12.5.4产生错误信息命令#error 342

12.6内联函数 343

12.7小结 344

第13章 存储管理 345

13.1内存组织方式 345

13.1.1内存组织方式 345

13.1.2堆和栈的比较 346

13.2 C语言的动态存储管理 347

13.3分配内存函数——malloc() 347

13.4带初始化的分配内存函数——calloc() 349

13.5调整已分配内存函数——realloc() 350

13.6释放分配的内存函数——free() 352

13.7丢失的内存 354

13.8小结 356

第2篇C语言进阶篇 358

第14章 字符及字符串操作 358

14.1字符的操作 358

14.1.1检查英文字母函数 359

14.1.2检查字母数字函数 360

14.1.3检查控制字符函数 360

14.1.4 十进制数字检查函数 361

14.1.5可打印字符检查函数 362

14.1.6包含空格的可打印字符检查函数 363

14.1.7格式字符检查函数 364

14.1.8小写英文字母检查函数 365

14.1.9大写英文字母检查函数 366

14.1.10控制字符检查函数 367

14.1.11十六进制数字检查函数 368

14.1.12大写字符转换函数 368

14.1.13小写字符转换函数 369

14.1.14 ASCII字符转换函数 370

14.1.15大写字符宏转换函数 371

14.1.16小写字符宏转换函数 371

14.2字符串的存储 372

14.2.1字符串的静态存储 372

14.2.2字符串的动态存储 373

14.3字符串的操作 374

14.4检测字符串长度函数 375

14.5查找字符串 376

14.5.1查找字符位置函数——strchr() 376

14.5.2查找相同字符函数——strspn() 378

14.5.3查找包含字符位置函数——strcspn() 378

14.5.4查找包含字符函数——strpbrk() 379

14.5.5查找子串函数——strstr() 380

14.5.6字符查找函数——memchr() 381

14.5.7字符包含函数——strrchr() 382

14.6比较字符串 383

14.6.1比较字符串函数——strcmp() 383

14.6.2比较部分字符串函数——memcmp() 384

14.6.3比较时忽略大小写函数——stricmp() 386

14.6.4包含结束符的比较函数——stricmp 387

14.7连接字符串 388

14.7.1连接字符串函数——strcat() 388

14.7.2连接部分字符函数——strcat() 390

14.8复制字符串 391

14.8.1复制字符串函数——strcpy() 391

14.8.2复制部分字符函数——strcpy() 392

14.8.3更省事的复制函数——strdup() 393

14.8.4字符串复制函数——memcPy() 394

14.8.5带终止字符的复制函数——memccpy() 395

14.8.6字符串移动函数——memmove() 395

14.9字符和字符串的转换 396

14.9.1大小写字符的转换 396

14.9.2转换大小写字符串 397

14.9.3字符串与数值的转换 398

14.10其他字符串函数 399

14.10.1字符串反转函数——strrev() 399

14.10.2替换字符串中的字符函数——strset() 400

14.10.3分解字符串函数——strtok() 401

14.10.4字符串填充函数——memset() 402

14.11小结 403

第15章 文件操作 404

15.1文件与数据流 404

15.1.1程序的输入/输出概念 404

15.1.2流的概念 404

15.1.3预定义的流 405

15.1.4文件的基本概念 405

15.1.5缓冲文件系统 406

15.2文件的打开与关闭 406

15.2.1文件指针 406

15.2.2打开文件函数——fopen() 407

15.2.3关闭文件函数——fclose() 409

15.3从文件中读写字符 409

15.3.1写字符函数——putc()和fputc() 410

15.3.2读字符函数——getc()和fgetc() 411

15.3.3合并文件 413

15.4从文件中读写字符串 414

15.4.1写字符串函数——fputs() 414

15.4.2读字符串函数——fgets() 416

15.4.3文件格式输出函数——fprintf() 417

15.4.4文件格式输入函数——fscanf() 418

15.5二进制文件的读写 420

15.5.1写入整型数据函数——putw() 421

15.5.2读取整型数据函数——getw() 422

15.5.3写数据块函数——fwrite() 423

15.5.4读数据块函数——fread() 425

15.5.5文件检测函数 426

15.6 文件的随机读写 427

15.6.1获取当前位置函数——ftell() 427

15.6.2重置文件位置指针函数——rewind() 429

15.6.3设置文件位置指针——fseek()函数 430

15.7管理缓冲区 432

15.8输入/输出的重定向 433

15.8.1操作系统的重定向功能 433

15.8.2重定向输出 434

15.8.3重定向函数——freopen() 435

15.9文件管理 436

15.9.1重命名文件 436

15.9.2删除文件 437

15.9.3复制文件 438

15.9.4创建临时文件 439

15.10小结 441

第16章 典型库函数应用 442

16.1随机函数 442

16.1.1伪随机函数————rand() 442

16.1.2随机种子函数——srand() 443

16.1.3更加合理的随机数产生方法 444

16.1.4获取任意范围的随机数 445

16.1.5获取随机字符 446

16.2数学函数 447

16.2.1绝对值函数 448

16.2.2三角函数 448

16.2.3双曲三角函数 449

16.2.4指数函数和对数函数 450

16.2.5取整函数 452

16.2.6浮点型分离函数 453

16.2.7幂函数 454

16.2.8取余函数 454

16.2.9 C99中扩展的数学函数 455

16.3日期时间函数 455

16.3.1表示日期时间的数据结构 455

16.3.2获取日期时间 456

16.3.3转换日期时间的表示形式 457

16.3.4格式化日期时间 460

16.4小结 463

第17章 模块化程序设计方法 464

17.1模块化程序设计概念 464

17.2程序模块结构 465

17.2.1 C程序的组织 465

17.2.2多文件模块的编译链接 467

17.2.3文件包含 470

17.2.4内部函数与外部函数 471

17.3变量的作用域 472

17.3.1局部变量 472

17.3.2在复合语句中的变量 473

17.3.3全局变量 474

17.3.4全局变量和局部变量同名 477

17.4变量的存储类型 477

17.4.1了解存储类型 478

17.4.2自动变量 478

17.4.3寄存器变量 480

17.4.4外部变量 481

17.4.5静态变量 482

17.5函数、文件、变量的关系 485

17.6小结 486

第18章 典型算法应用 487

18.1排序 487

18.1.1排序概述 487

18.1.2冒泡排序法 488

18.1.3选择排序法 489

18.1.4插入排序法 491

18.1.5 shell排序法 492

18.1.6快速排序法 494

18.1.7字符串数组的排序 496

18.1.8字符串的排序 498

18.2查找 499

18.2.1顺序查找 499

18.2.2折半查找 501

18.3队列 503

18.3.1队列的概念 504

18.3.2队列的操作 504

18.4堆栈 508

18.4.1堆栈的概念 508

18.4.2堆栈的实现 508

18.5链表 512

18.5.1链表的概念 512

18.5.2链表的基本操作 513

18.5.3测试链表的功能 517

18.6小结 518

第19章 图形绘制 519

19.1显示系统简介 519

19.1.1显示系统基本概念 519

19.1.2显示卡种类 520

19.1.3显示模式 520

19.2 DJGPP开发环境 522

19.2.1下载DJGPP开发环境 522

19.2.2安装DJGPP开发环境 523

19.2.3测试DJGPP开发环境 524

19.2.4调用中断服务 525

19.3绘图基础 526

19.3.1设置显示模式 527

19.3.2控制显示缓冲区 527

19.4图形函数 528

19.4.1绘制点 528

19.4.2读取点的信息 529

19.4.3绘制直线 530

19.4.4绘制矩形 532

19.4.5绘制圆 532

19.4.6绘制多边形 534

19.5编辑图形 536

19.5.1复制图形 536

19.5.2移动图形 536

19.5.3保存图形 537

19.5.4载入图形 537

19.6小结 539

第20章 鼠标控制 540

20.1鼠标驱动程序 540

20.1.1通过中断访问鼠标驱动程序 540

20.1.2 DJGPP开发环境对中断的支持 541

20.2鼠标库函数 541

20.2.1定义头文件mouse.h 541

20.2.2通过中断控制鼠标 542

20.2.3初始化鼠标 543

20.2.4复位鼠标 544

20.2.5移动鼠标 544

20.2.6显示鼠标指针 545

20.2.7隐藏鼠标指针 545

20.2.8获取按下的按键信息 546

20.2.9获取释放的按键信息 546

20.2.10获取鼠标状态信息 547

20.2.11获取鼠标指针位置信息 548

20.2.12保存鼠标指针位置 548

20.2.13捕获键盘或鼠标 549

20.2.14鼠标指针区域 550

20.3鼠标应用实例 551

20.3.1了解屏幕函数 551

20.3.2实例程序 552

20.4小结 554

第3篇C语言接口篇 556

第21章C语言与汇编的接口 556

21.1 AT&T汇编简介 556

21.1.1了解汇编的两种格式 556

21.1.2将C语言输出为汇编程序 558

21.2 GCC内嵌汇编 559

21.2.1基本内联汇编 559

21.2.2扩展内联汇编 559

21.2.3内联汇编实例 563

21.3调用汇编程序 564

21.3.1 C编译程序的调用约定 565

21.3.2 C语言调用汇编的结构 566

21.3.3建立汇编函数的框架 567

21.3.4调用汇编函数 567

21.4在Visual C++中调用汇编 569

21.4.1内联汇编关键字 569

21.4.2在asm块中使用汇编语言 570

21.4.3在asm块中使用C/C++++语言元素 571

21.4.4寄存器的使用 572

21.4.5跳转 572

21.4.6内联汇编调用函数实例 573

21.4.7内联汇编的优缺点 574

21.5小结 574

第22章C语言与LabVIEW的接口 575

22.1 LabVIEW概述 575

22.1.1虚拟仪器概述 575

22.1.2虚拟仪器与传统仪器的对比 576

22.1.3虚拟仪器的优势 577

22.1.4什么是LabVIEW 577

22.1.5 LabVIEW的运行机制 578

22.2 CIN节点 580

22.2.1 CIN概述 580

22.2.2支持在LabVIEW中调用的CIN的编译器 580

22.2.3 CIN节点说明 581

22.3 CIN节点的设计方法 582

22.3.1创建CIN节点的基本方法 582

22.3.2创建CIN节点 582

22.3.3创建.c源文件 583

22.3.4编译.c文件 585

22.3.5加载.lsb文件 587

22.4 CIN节点的多线程运行 587

22.5小结 587

第23章 C语言与MATLAB的接口 588

23.1 MATLAB简介 588

23.1.1 MATLAB简介 588

23.1.2 MATLAB的版本演化 589

23.1.3 MATLAB的优势 591

23.1.4 MATLAB常用工具箱 593

23.1.5 C语言与MATLAB的接口 593

23.2 MATLAB引擎 594

23.2.1 MATLAB引擎简介 594

23.2.2 MATLAB引擎的工作方式 595

23.2.3配置Visual C++编译器 595

23.2.4 MATLAB引擎API详解 596

23.2.5数据类型mxArray的操作 598

23.2.6 MATLAB引擎实例 600

23.3 COM组件 603

23.3.1使用deploytool 603

23.3.2使用comtool 608

23.4 MEX文件 611

23.4.1 MATLAB编译器简介 611

23.4.2 MATLAB编译器的安装与配置 612

23.4.3 C语言的MEX文件的结构 614

23.4.4 C语言的MEX文件实例 615

23.4.5 MEX文件的优势 616

23.4.6常用的mex函数和mx函数 618

23.4.7 C-MEX文件字符串操作实例 620

23.5使用Matcom 622

23.6小结 622

第24章C语言与JavaScript的接口 623

24.1 JavaScript简介 623

24.1.1什么是JavaScript 623

24.1.2 JavaScript基本特点 624

24.1.3正确认识JavaScript 624

24.1.4 JavaScript的基本概念 624

24.1.5 JavaScript的运行环境 627

24.2 JavaScript-C引擎 627

24.2.1 JavaScript-C引擎的由来 627

24.2.2获取JavaScript-C引擎 628

24.2.3 JavaScript-C引擎支持的版本 628

24.2.4运行JavaScript-C引擎的条件 628

24.2.5 JavaScript-C引擎与应用程序的关系 629

24.3 JavaScript-C引擎开发 631

24.3.1嵌入JavaScript-C引擎的必要条件 631

24.3.2管理一个运行时 632

24.3.3管理上下文 633

24.3.4初始化内置的和全局的JavaScript对象 634

24.3.5创建和初始化自定义对象 634

24.3.6 JavaScript类型的处理 635

24.4在C/C++中执行JavaScript程序 636

24.4.1创建JavaScript运行时环境 636

24.4.2创建一个上下文 637

24.4.3初始化全局对象 637

24.4.4执行脚本 637

24.4.5清理脚本引擎 638

24.5 JavaScript-C引擎的编译 638

24.6 JavaScript-C引擎实例 639

24.6.1建立项目 639

24.6.2 C源文件 640

24.7小结 642

第25章C语言硬件端口操作 643

25.1并行端口简介 643

25.1.1认识计算机并口 643

25.1.2并口的引脚定义 643

25.1.3并口的工作模式 644

25.1.4并口寄存器定义 645

25.1.5并口开发调试工具包 646

25.2 Turbo C下的并口操作 647

25.2.1端口操作函数 648

25.2.2并口读写实例 648

25.3其他C语言环境下的并口操作 649

25.3.1端口开发库函数 649

25.3.2并口读写实例 651

25.4小结 652

第4篇C语言扩展篇 654

第26章Linux下的C语言开发 654

26.1 Linux简介 654

26.2 Linux常用命令详解 655

26.2.1文件管理 656

26.2.2文件传输 659

26.2.3文档编辑 660

26.2.4系统管理 662

26.2.5系统设置 666

26.2.6网络通信 669

26.2.7磁盘管理 672

26.2.8磁盘维护 675

26.2.9备份压缩 677

26.2.10设备管理 678

26.3 Linux C语言开发环境 679

26.3.1 Linux C开发环境的构成 679

26.3.2代码编辑器 680

26.3.3 GCC编译器 681

26.4 Linux下的C程序开发 682

26.4.1在emacs中编译C程序 682

26.4.2在Linux中编写C程序 683

26.5小结 685

第27章 单片机的C语言开发 686

27.1单片机简介 686

27.1.1单片机的发展 686

27.1.2 51系列单片机 687

27.1.3认识单片机 687

27.1.4单片机的结构 688

27.1.5单片机的应用领域 690

27.2单片机C语言简介 690

27.2.1单片机C语言和汇编语言的对比 691

27.2.2单片机C语言的特点 691

27.3单片机C语言的开发工具 691

27.3.1 Keil μVision3简介 691

27.3.2 Keil μVision3的系统需求 692

27.3.3 Keil μVision3集成开发环境 692

27.4单片机C语言开发实例 693

27.4.1创建项目 693

27.4.2创建源文件 694

27.4.3编译项目 695

27.4.4仿真调试 696

27.5单片机C语言与标准C语言的区别 696

27.5.1标识符 696

27.5.2关键字 697

27.5.3数据类型 697

27.5.4中断函数 697

27.5.5 存储类型 698

27.5.6扩展数据类型 700

27.5.7存储模式 702

27.5.8指针 703

27.5.9递归或可重入函数指定 704

27.6小结 705

第28章 嵌入式系统C语言开发 706

28.1嵌入式系统简介 706

28.1.1什么是嵌入式系统 706

28.1.2嵌入式系统的基本结构 707

28.1.3嵌入式系统的特点 707

28.1.4嵌入式系统中的处理器 707

28.1.5嵌入式操作系统 708

28.1.6嵌入式系统中的软件系统 709

28.2嵌入式Linux C语言开发工具 710

28.2.1编辑器VIM 710

28.2.2编译器GCC 715

28.2.3 GCC的常用编译选项 717

28.2.4调试器GDB 720

28.2.5工程管理MAKE 725

28.3集成开发环境Eclipse 730

28.3.1 Eclipse的安装 730

28.3.2 Eclipse的界面简介 732

28.3.3创建Hello项目 733

28.3.4调试Hello项目 735

28.4嵌入式C语言开发流程 735

28.4.1命令行下的开发流程 735

28.4.2基于Eclipse的开发流程 739

28.5小结 743

第29章 基于C语言的高性能并行GPU编程 744

29.1 GPU概述 744

29.1.1 GPU和CPU 744

29.1.2 GPU的作用 744

29.1.3 GPU的优势 745

29.1.4 GPU的供应商 747

29.1.5 GPU的开发环境 748

29.2基于C语言的CUDA 748

29.2.1什么是CUDA 748

29.2.2 CUDA的发展历史 749

29.2.3 CUDA基本构架 750

29.2.4 CUDA编程模型 752

29.2.5 CUDA硬件实现 753

29.3 CUDA应用程序编程接口(API) 754

29.3.1 CUDA编程接口的构成 754

29.3.2 CUDA对C语言的扩展 754

29.3.3 NVCC编译 756

29.3.4公共运行时(Runtime)组件 757

29.3.5设备运行时组件 758

29.3.6主机运行时组件 761

29.3.7 CUDA运行时API详解 762

29.3.8 CUDA 驱动程序API详解 772

29.4在Visual Studio中使用CUDA 784

29.4.1安装CUDA 784

29.4.2配置CUDA NVCC 786

29.4.3使用第三方工具配置CUDANVCC 789

29.5 CUDA并行编程实例 790

29.5.1初始化CUDA实例 791

29.5.2 GPU运算实例 792

29.6小结 794