目录
1 Introduction 1
1.1 Literate Programs 2
1.2 Programming Style 8
1.3 Efficiency 11
Further Reading 12
Exercises 13
2 Interfaces and Implementations 15
2.1 Interfaces 15
2.2 Implementations 18
2.3 Abstract Data Types 21
2.4 Client Responsibilities 24
2.5 Efficiency 30
Further Reading 30
Exercises 31
3 Atoms 33
3.1 Interface 33
3.2 Implementation 34
Further Reading 42
4 Exceptions and Assertions 45
4.1 Interface 47
.4.2 Implementation 53
4.3 Assertions 59
Further Reading 63
Exercises 64
5 Memory Management 67
5.1 Interface 69
5.2 Production Implementation 73
5.3 Checking Implementation 76
Further Reading 85
Exercises 86
6 More Memory Management 89
6.1 Interface 90
6.2 Implementation 92
Further Reading 98
Exercises 100
7 Lists 103
7.1 Interface 103
7.2 Implementation 108
Further Reading 113
Exercises 114
8 Tables 115
8.1 Interface 115
8.2 Example: Word Frequencies 118
8.3 Implementation 12 5
Further Reading 132
Exercises 133
9 Sets 137
9.1 Interface 138
9.2 Example: Cross-Reference Listings 140
9.3 Implementation 148
9.3.1 Member Operations 150
9.3.2 Set Operations 154
Further Reading 158
Exercises 158
10 Dynamic Arrays
10.1 Interfaces 162
10.2 Implementation 165
Further Reading 169
Exercises 169
11 Sequences 171
11.1 Interface 171
11.2 Implementation 174
Further Reading 180
Exercises 180
12 Rings 183
12.1 Interface 183
12.2 Implementation 187
Further Reading 196
Exercises 197
13 Bit Vectors 199
13.1 Interface 199
13.2 Implementation 202
13.2.1 Member Operations 204
13.2.2 Comparisons 209
13.2.3 Set Operations 211
Further Reading 213
Exercises 21314 Formatting 215
14.1 Interface 216
14.1.1 Formatting Functions 216
14.1.2 Conversion Functions 219
14.2 Implementation 224
14.2.1 Formatting Functions 225
14.2.2 Conversion Functions 232
Further Reading 238
Exercises 239
15 Low-LevelStrings 241
15.1 Interface 243
15.2 Example: Printing Identifiers 249
15.3 Implementation 251
15.3.1 String Operations 252
15.3.2 Analyzing Strings 258
15.3.3 Conversion Functions 263
Further Reading 264
Exercises 265
16 High-LevelStrings 269
16.1 Interface 269
16.2 Implementation 276
16.2.1 String Operations 281
16.2.2 Memory Management 285
16.2.3 Analyzing Strings 288
16.2.4 Conversion Functions 293
Further Reading 293
Exercises 294
17 Extended-Precision Arithmetic 297
17.1 Interface 297
17.2 Implementation 303
17.2.1 Addition and Subtraction 305
17.2.2 Multiplication 307
17.2.3 Division and Comparison 309
17.2.4 Shifting 315
17.2.5 String Conversions 319
Further Reading 321
Exercises 322
18 Arbitrary-Precision Arithmetic 323
18.1 Interface 323
18.2 Example: A Calculator 327
18.3 Implementation 334
18.3.1 Negation and Multiplication 337
18.3.2 Addition and Subtraction 338
18.3.3 Division 342
18.3.4 Exponentiation 343
18.3.5 Comparisons 346
18.3.6 Convenience Functions 347
18.3.7 Shifting 349
18.3.8 String and Integer Conversions 350
Further Reading 353
Exercises 354
19 Multiple-Precision Arithmetic 357
19.1 Interface 358
19.2 Example: Another Calculator 365
19.3 Implementation 373
19.3.1 Conversions 377
19.3.2 Unsigned Arithmetic 380
19.3.3 Signed Arithmetic 383
19.3.4 Convenience Functions 388
19.3.5 Comparisons and Logical Operations 395
19.3.6 String Conversions 399
Further Reading 402
Exercises 402
20 Threads 405
20.1 Interfaces 408
20.1.1 Threads 409
20.1.2 General Semaphores 413
20.1.3 Synchronous Communication Channels 417
20.2 Examples 418
20.2.1 Sorting Concurrently 418
20.2.2 Critical Regions 423
20.2.3 Generating Primes 426
20.3 Implementations 431
20.3.1 Synchronous Communication Channels 431
20.3.2 Threads 434
20.3.3 Thread Creation and Context-Switching 446
20.3.4 Preemption 454
20.3.5 General Semaphores 457
20.3.6 Context-Switching on the MIPS and ALPHA 459
Further Reading 463
Exercises 465
Interface Summary 469
Bibliography 497
Index 505
【展开】
【收起】
内容简介
可重用的软件模块是构建大规模可靠应用程序的基石,创建可重用的软件模块是每个程序员和项目经理必须掌握的技能。C语言对创建可重用的API提供的语言和功能支持非常少,虽然C程序员写应用时都会用到API和库,但却很少有人去创建和发布新的能广泛应用的API。本书介绍用一种基于接口的设计方法创建可重用的API,这一方法将接口与实现分离开来,且与语言无关。书中详细描述了24个接口及其实现,便于读者深入了解此方法。这些接口涉及很多计算机领域的知识,包括数据结构、算法、字符串处理和并发程序。
本书是C语言领域的的经典名著,出版十余年仍畅销不衰,是几代程序员倍加推崇的力作。
【展开】
【收起】
下载说明
1、追日是作者栎年创作的原创作品,下载链接均为网友上传的的网盘链接!
2、相识电子书提供优质免费的txt、pdf等下载链接,所有电子书均为完整版!
下载链接
热门评论
-
xyCodeFarmer的评论C语言接口与实现的作者做的那个list太挫了!我不敢苟同链表要在链表头插入,pop函数的实现更是坑爹,使一个指针的值指向一个要被释放的节点。 代码看图片
-
mlzboy的评论c语言接口与实现+创建可重用软件的技术-当当网 网页链接
-
SmartWind_连远坤的评论【好书推荐】【C语言接口与实现】新书到咯,共享一下
-
ZLG-周立功的评论(1)给初学者介绍一本好书:"C语言接口与实现--创建可重用软件的技术"(人民邮电),这是一本从C语言成为高手的必读之作,书重描述的各种技术具有很强的工程价值且在大学课堂是学不到的。可重用的软件是构建大规模可靠应用程序的基石,创建可重用的软件模块也是每个程序员和项目经历必须掌握的技能
-
伯诩的评论必须再读读《c语言接口与实现》了,发现自己写代码越来越烂。。。
-
无锋之刃的评论@图灵谢工 图灵年终活动的图书确认收到了!《C语言接口与实现》
-
异步社区郭志敏的评论《C语言接口与实现》达不到起印要求,不能印刷,面临绝版,为何C的书这么惨?这书是不好吗?不适合程序员阅读?真切希望得到你们的答案,如果大家都认为这书不行,那么也许不久的明天,市场上便再无此书了。[泪]