《Microsoft Visual C++语言参考手册》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:(美国微软公司)Microsoft Corporation著;前导工作室译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:1999
  • ISBN:730203253X
  • 页数:588 页
图书介绍:

第一部分 C语言参考手册 3

引言 3

0.1 本手册的组织 3

0.2 本手册的范围 3

0.3 ANSI约定 3

第1章 C的语言成分 4

1.1 标记 4

1.1.1 空白字符 4

1.1.2 注释 5

1.1.3 标记的求值 6

1.2 关键字 6

1.3 标识符 7

1.3.1 多字节与宽字符 9

1.3.2 三连符(Trigraph) 9

1.4 常量 10

1.4.1 浮点常量 10

1.4.2 整数常量 13

1.4.3 字符常量 16

1.5 字符串常量 18

1.5.1 字符串常量的类型 19

1.5.2 字符中常量的存储 19

1.5.3 字符串常量的连接 19

1.5.4 最大字符串的长度 20

1.6 标点符号和特殊字符 20

2.1 源文件和源程序 21

第2章 程序的结构 21

2.2 main函数和程序的执行 25

2.2.1 使用wmain 25

2.2.2 变元的说明 26

2.2.3 扩展的变元通配符 26

2.2.4 命令行变元的分析 27

2.2.5 定制命令行处理 28

2.3 生命周期、作用域、可见性和链接 28

2.3.2 作用域与可见性 29

2.3.1 生命周期 29

2.3.3 生命周期和可见性小结 30

2.3.4 链接 31

2.4 名字空间 32

第3章 声明和类型 33

3.1 声明概览 33

3.2 存储类 35

3.2.1 外部声明的存储类说明符 36

3.2.2 内部声明的存储类说明符 38

3.2.3 函数声明中的存储类说明符 40

3.3 类型说明符 40

3.4 类型限定符 42

3.5 声明符和变量声明 43

3.5.1 简单变量声明 45

3.5.2 枚举声明 45

3.5.3 结构声明 48

3.5.4 联合声明 53

3.5.5 数组声明 56

3.5.6 指针声明 57

3.5.7 基指针 60

3.5.8 抽象声明 61

3.6 理解更复杂的声明符 61

3.7 初始化 63

3.7.1 初始化比例类型 64

3.7.2 初始化聚合类型 65

3.7.3 初始化字符串 68

3.8 基本类型的存储 69

3.9 不完全类型 73

3.10 Typedef定义 73

3.11 扩展存储类属性 76

3.11.1 DLL输入和输出 76

3.11.2 Naked函数 77

3.11.3 线程局部存储 77

4.1 操作符和表达式 79

4.1.1 基本表达式 79

第4章 表达式和赋值 79

4.1.2 左值和右值表达式 81

4.1.3 常量表达式 81

4.1.4 表达式求值 82

4.2 运算符 83

4.2.1 求值的优先级和顺序 84

4.2.2 常用的算术转换 86

4.2.3 后缀运算符 87

4.2.4 一元运算符 92

4.2.5 强制运算符 95

4.2.6 乘运算符 95

4.2.7 加运算行 97

4.2.8 按位移运算符 98

4.2.9 关系和相等运算符 99

4.2.10 按位运算符 101

4.2.11 逻辑运算符 102

4.2.12 条件表达式运算符 103

4.2.13 赋值运算符 104

4.2.14 顺序求值运算符 106

4.3 类型转换 106

4.3.1 赋值转换 107

4.3.2 类型强制转换 111

4.3.3 函数调用转换 112

第5章 语句 114

5.1 概述 114

5.3 复合语句 115

5.2 break语句 115

5.4 continue语句 116

5.5 do-while语句 117

5.6 表达式语句 118

5.7 for语句 118

5.8 goto和带标号的语句 119

5.9 if语句 120

5.10 空语句 121

5.11 retum语句 122

5.12 switch语句 123

5.13 try-except语句 125

5.14 try-finally语句 127

5.15 while语句 128

第6章 函数 130

6.1 概述 130

6.2 函数定义 131

6.2.1 函数属性 133

6.2.2 DLL输入和输出函数 134

6.2.3 Naked函数 137

6.2.4 存储类 140

6.2.5 返回类型 141

6.2.6 形参 142

6.2.7 函数体 144

6.3 函数原型 144

6.4 函数调用 146

6.4.1 实参 147

6.4.3 递归函数 149

6.4.2 使用可变个数的参数调用 149

附录A C语言语法概述 151

A.1 定义和约定 151

A.2 词法 151

A.2.1 单词 151

A.2.2 关键字 152

A.2.3 标识符 153

A.2.4 常量 153

A.2.5 串字符 155

A.2.6 操作符 155

A.2.7 标点符号 155

A.3 短语结构语法 156

A.3.1 表达式 156

A.3.2 声明 158

A.3.3 语句 161

A.3.4 外部定义 162

B.2 环境 163

B.2.1 main的参数 163

附录B 由实现所定义的行为 163

B.1 翻译:诊断 163

B.2.2 交互设备 164

B.3 标识符 164

B.3.1 不具有外部链接的有效字符 164

B.3.2 具有外部链接的有效字符 164

B.3.3 大写和小写 164

B.4 字符 164

B.4.1 ASCII字符集 164

B.4.2 多字节字符 164

B.4.3 每个字符的位数 165

B.4.4 字符集 165

B.4.5 未表示的字符常量 165

B.4.6 宽字符 165

B.5 整数 166

B.5.2 整数的降级 166

B.5.1 整数值的范围 166

B.4.7 转换多字节字符 166

B.4.8 char值的范围 166

B.5.3 有符号的按位操作 167

B.5.4 余数 167

B.5.6 右移 167

B.6.3 浮点值的截断 168

B.7.2 指针减法 168

B.7.1 最大数组大小 168

B.7 数组和指针 168

B.6.2 把整数强制为浮点值 168

B.6.1 值 168

B.6 浮点数学 168

B.8 寄存器:寄存器的可用性 169

B.9 结构,联合,枚举和位域 169

B.9.1 对联合的非法访问 169

B.9.2 结构成员的填充和对齐 169

B.9.3 位域的符号 169

B.9.4 位域的存储 169

B.12 语句:Switch语句的限制 170

B.11 声明符:最大数目 170

B.9.5 enum类型 170

B.10 限制符:访问Volatile对象 170

B.13 预处理命令 171

B.13.1 字符常量和条件蕴含 171

B.13.2 用尖括号蕴含的文件名 171

B.13.3 用引号蕴含的文件名 171

B.13.4 字符序列 171

B.13.5 编译指示 171

B.13.6 默认日期和时间 172

B.14 库函数 172

B.14.1 NULL宏 172

B.14.2 由assert函数打印的诊断信息 172

B.14.3 字符检测 172

B.14.7 signal函数 173

B.14.9 结束换行字符 173

B.14.8 默认信号 173

B.14.5 浮点值的下溢 173

B.14.4 值域错 173

B.14.6 fmod函数 173

B.14.14 文件缓冲 174

B.14.18 删除打开的文件 174

B.14.17 文件访问限制 174

B.14.16 文件名 174

B.14.15 零长度的文件 174

B.14.13 文本文件的截断 174

B.14.12 插入模式中的文件位置 174

B.14.11 空字符 174

B.14.10 空行 174

B.14.19 用一个已存在的名字重新命名 175

B.14.20 读指针值 175

B.14.21 读范围 175

B.14.22 文件位置错 175

B.14.23 由perror函数生成的信息 175

B.14.26 atexit函数 176

B.14.25 abort函数 176

B.14.24 分配零内存 176

B.14.27 环境名 177

B.14.28 system函数 177

B.14.29 strerror函数 177

B.14.30 时区 178

B.14.31 clock函数 178

第二部分 C++语言参考手册 181

引言 181

0.1 本手册的内容 181

0.2 本手册中的组织 181

0.3 本手册中的特殊术语 182

第1章 词法约定 183

1.1 概述 183

1.2 单词 184

1.3 注释 185

1.4 标识符 186

1.5 C++关键字 187

1.6 标点符号 188

1.7 操作符 188

1.8 文字 191

1.8.1 整数常数 191

1.8.2 字符常数 193

1.8.3 浮点常数 195

1.8.4 串文字 196

第2章 基本概念 199

2.1 术语 199

2.2 声明与定义 200

2.2.1 声明 200

2.2.2 定义 201

2.3 作用域 201

2.3.1 声明点 202

2.3.2 隐藏名字 203

2.4.1 链接的种类 205

2.4.2 具有文件作用域的名字的链接 205

2.4 程序和链接 205

2.3.3 函数形参的作用域 205

2.4.3 具有类作用域的名字的链接 206

2.4.4 具有块作用域的名字的链接 206

2.4.5 没有链接的名字 206

2.4.6 对非C++函数的链接 208

2.5 启动和结束 209

2.6.1 程序结束 212

2.6 定制命令行处理 212

2.6.2 对启动附加的考虑 213

2.6.3 对结束附加的考虑 213

2.7 存储类 215

2.7.1 自动存储类 215

2.7.2 静态存储类 215

2.7.3 寄存器存储类 216

2.7.4 外部存储类 216

2.7.5 对象的初始化 216

2.8.1 基本类型 218

2.8 类型 218

2.8.2 带长度的整数类型 220

2.8.3 派生类型 220

2.8.4 类型名 226

2.9 左值与右值 227

2.10 数字界限 228

2.10.1 整数界限 228

2.10.2 浮点界限 228

3.1 整数升级 231

第3章 标准转换 231

3.2 整数转换 232

3.2.1 将带符号的数转换为无符号的数 232

3.2.2 将无符号的数转换为带符号的数 233

3.2.3 标准转换 233

3.3 浮点转换 233

3.4 浮点和整数的转换 234

3.4.1 浮点到整数 234

3.4.2 整数到浮点 234

3.5 算术转换 234

3.6.2 指向void类型的指针 235

3.6 指针转换 235

3.6.1 空指针 235

3.6.3 指向对象的指针 236

3.6.4 指向函数的指针 236

3.6.5 指向类的指针 236

3.6.6 指针表达式 237

3.6.7 被const或volatile限定的指针 237

3.7 引用转换 238

3.8 指向成员的指针的转换 238

3.8.1 整常数表达式 238

3.8.2 指向基类成员的指针 238

第4章 表达式 240

4.1 表达式的种类 240

4.1.1 初等表达式 240

4.1.2 后缀表达式 242

4.1.3 使用单目操作符的表达式 251

4.1.4 使用双目操作符的表达式 260

4.1.5 使用条件操作符的表达式 271

4.1.6 常数表达式 272

4.1.7 使用显式类型转换的表达式 273

4.1.8 使用指向成员的指针操作符的表达式 276

4.2 表达式的语义 279

4.2.1 求值的顺序 279

4.2.2 表达式的注释 281

4.3 Casting 282

4.3.1 Casting操作符 282

4.3.2 运行类型信息 288

第5章 语句 292

5.1 概述 292

5.2 标号语句 293

5.2.1 配合goto语句使用标号 293

5.2.2 在case语句中使用标号 294

5.3 表达式语句 294

5.4 复合语句(块) 295

5.5.1 if语句 296

5.5 选择语句 296

5.5.2 switch语句 297

5.6 迭代语句 299

5.6.1 while语句 300

5.6.2 do语句 301

5.6.3 for语句 301

5.7 跳转语句 303

5.7.1 break语句 303

5.7.2 continue语句 304

5.7.3 return语句 305

5.7.4 goto语句 305

5.8 声明语句 305

5.8.1 自动对象的声明 306

5.8.2 静态对象的声明 307

5.9 异常处理 309

5.9.1 try、catch及throw语句 310

5.9.2 构造的异常处理 315

6.1 说明符 316

第6章 声明 316

6.1.1 存储类说明符 317

6.1.2 函数说明符 319

6.1.3 typedef说明符 322

6.1.4 friend说明符 325

6.1.5 类型说明符 325

6.2 枚举声明 330

6.2.1 枚举符名字 333

6.2.2 枚举符常量的定义 333

6.2.3 转换和枚举类型 334

6.3 链接规范 335

6.4 模板规范 337

6.4.1 引用模板 337

6.4.2 函数模板 338

6.4.3 成员函数模板 338

6.4.4 显式实例化 339

6.4.5 与其他实现方法的区别 339

6.5 名字空间 340

6.5.1 名字空间的声明 341

6.5.2 名字空间的定义 342

6.5.3 名字空间成员定义 343

6.5.4 名字空间的别名 344

6.5.5 Using声明 344

6.5.6 Using指令 349

6.5.7 显式限定 352

第7章 声明符 353

7.1 概述 353

7.3 抽象声明符 355

7.2 类型名 355

7.3.1 消除二义性 356

7.3.2 指针 357

7.3.3 引用 359

7.3.4 成员指针 364

7.3.5 数组 369

7.3.6 函数声明 372

7.3.7 默认参数 377

7.4 函数定义 380

7.5 初始化 382

7.5.1 初始化const对象的指针 383

7.5.2 非初始化对象 383

7.5.3 初始化静态成员 384

7.5.4 初始化聚集 384

7.5.5 初始化字符数组 387

7.5.6 初始化引用 387

8.1 概述 389

第8章 类 389

8.1.1 定义类类型 390

8.1.2 类类型对象 392

8.2 类名 393

8.2.1 声明和访问类名 394

8.2.2 typedef语句和类 395

8.3 类成员 395

8.3.1 类成员声明语法 397

8.3.2 在成员中声明未定义长度的数组 398

8.4 成员函数 399

8.3.3 类成员数据的存储 399

8.3.4 成员命名限制 399

8.4.1 成员函数综述 401

8.4.2 this指针 402

8.5 静态数据成员 404

8.6 联合 405

8.6.1 联合中的成员函数 406

8.6.2 作为类类型的联合 406

8.6.3 联合的成员数据 406

8.6.4 无名联合 407

8.7 位域 408

8.8 嵌套类声明 409

8.8.1 访问特权和嵌套类 410

8.8.2 嵌套类中的成员函数 410

8.8.3 友元函数和嵌套类 411

8.9 类作用域中的类型名 412

9.1.1 单继承 413

9.1 概述 413

第9章 派生类 413

9.1.2 多重继承 417

9.1.3 虚基类层次结构 417

9.1.4 类协议实现 418

9.1.5 基类 418

9.2 多重基类 419

9.2.1 虚基类 420

9.2.2 名字的二义性 421

9.3 虚函数 424

9.4 抽象类 428

9.5 作用域规则总结 430

9.5.1 二义性 430

9.5.2 全局名 430

9.5.3 名字和受限名 430

9.5.4 函数参数名 431

9.5.5 构造函数初始化 431

10.2 访问说明符 432

第10章 成员访问控制 432

10.1 控制对类成员的访问 432

10.3 基类的访问说明符 433

10.4 友元 436

10.4.1 友元函数 436

10.4.2 作为友元的类成员函数和类 438

10.4.3 友元声明 439

10.4.4 在类声明中定义友元函数 440

10.5 保护成员访问 440

10.6 对虚函数的访问 440

10.7 多重访问 441

第11章 特殊成员函数 442

11.1 构造函数 443

11.1.1 构造函数做什么 443

11.1.2 声明构造函数的规则 443

11.1.4 构造的次序 446

11.2 析构函数 446

11.1.3 构造函数和数组 446

11.2.1 声明析构函数 447

11.2.2 使用析构函数 448

11.2.3 析构的顺序 448

11.2.4 显式析构函数调用 449

11.3 临时对象 450

11.4 转换 451

11.4.1 转换构造函数 451

11.4.2 转换函数 453

11.5 new和delete操作符 455

11.5.1 operator new函数 455

11.5.2 处理内存不够的情况 456

11.5.3 operator delete函数 460

11.6 使用特殊成员函数进行初始化 462

11.6.1 显式初始化 462

11.6.2 初始化数组 464

11.6.3 初始化静态对象 465

11.6.4 初始化基和成员 465

11.7 拷贝类对象 467

11.7.1 编译器生成的拷贝 468

11.7.2 按成员赋值和初始化 469

第12章 重载 471

12.1 概述 471

12.1.1 参数类型的区别 471

12.1.2 重载函数的限制 472

12.2 声明匹配 473

12.3 参数匹配 475

12.3.1 参数匹配和this指针 476

12.3.2 参数匹配和转换 477

12.4 重载函数的地址 480

12.5 重载操作符 480

12.5.1 操作符重载的通用规则 482

12.5.2 一元操作符 483

12.5.3 二元操作符 486

12.5.5 函数调用 488

12.5.4 赋值 488

12.5.6 下标 489

12.5.7 类成员访问 490

附录A 文法小结 492

A.1 关键字 492

A.2 表达式 493

A.3 声明 498

A.4 声明符 502

A.5 类 504

A.6 语句 506

A.7 Microsoft扩展特性 507

附录B Microsoft特定的修饰符 509

B.1 基址寻址 509

B.2 调用和命名约定修饰符 510

B.3 扩展存储类属性 510

B.3.1 扩展属性语法 511

B.3.2 线程属性 511

B.3.3 naked属性 511

B.3.4 dllexport和dllimport属性 515

B.3.5 在C++中使用dllimport和dllexport 518

B.4 嵌入汇编器 520

附录C Microsoft特定编译器的COM支持类 521

C.1 _com_error 521

C.1.1 成员函数 522

C.1.2 操作符 525

C.2 _com_ptr_t 525

C.2.1 成员函数 526

C.2.2 操作符 529

C.3 _bstr_t 532

C.3.1 成员函数 532

C.3.2 操作符 533

C.4 _variant_t 535

C.4.1 成员函数 535

C.4.2 操作符 538

附录D 表格 541

D.1 ASCII字符代码表1 542

D.2 ASCII字符代码表2 543

D.3 ASCII多语种代码表 544

D.4 ANSI字符代码表 545

D.5 键盘代码表1 545

D.6 键盘代码表2 546

第三部分 预处理器参考手册 549

引言 549

第1章 预处理器 550

1.1 编译的阶段 550

1.2.1 #define指令 551

1.2 预处理命令 551

1.2.2 #error指令 553

1.2.3 #if,#elif,#else和#endif指令 553

1.2.4 #ifdef和#ifndef指令 557

1.2.5 #import指令 557

1.2.6 #include指令 562

1.2.7 #line指令 564

1.2.9 #undef指令 565

1.2.8 空(NULL)指令 565

1.3.1 字符串化符(#) 566

1.3 预处理操作符 566

1.3.2 字符化符(# @) 567

1.3.3 符号粘贴符(# #) 567

1.4 宏 568

1.4.1 宏和C++ 568

1.4.2 预定义宏 569

第2章 Pragma指令 572

2.1 C++编译器专有的编译指令 572

2.1.1 init-seg 572

2.1.2 pointers_to_members 573

2.1.3 Vtordisp 574

2.2 C和C++编译器的编译指令 574

2.2.1 alloc_text 574

2.2.3 bss_seg 575

2.2.4 check_stack 575

2.2.2 auto_inline 575

2.2.5 code_seg 576

2.2.6 const_seg 576

2.2.7 conrment 576

2.2.8 component 577

2.2.9 data_seg 578

2.2.10 function 578

2.2.11 hdrstop 578

2.2.12 include_alias 579

2.2.13 inline_depth 580

2.2.15 intrinsic 581

2.2.16 message 582

2.2.17 once 582

2.2.18 optimize 582

2.2.19 pack 583

2.2.20 setlocale 584

2.2.21 waming 584

附录 语法总结 586