基本信息
源码名称:C traps and pitfalls by Andrew Koenig
源码大小:5.38M
文件格式:.pdf
开发语言:C/C++
更新时间:2022-02-06
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 3 元 
   源码介绍
C  traps and pitfalls by Andrew Koenig

CONTENTS
o In trod ueti 0 n ;.1
1 Lexi eal pi tf aIls .............................................................•..................................... 5
1.1 = is not == 6
1.2 & and : are not && or : : 7
1.3 Greedy lexical analysis 7
1.4 Integer constants 9
1.5 Strings and characters l0
2 SYnta et ie pi tf alls 13
2.1 Understanding function declarations 13
2.2 Operators don't always have the precedence you want.. 17
2.3 Watch those semicolons! 20
2.4 The switch statement 22
2.5 Calling functions : 24
2.6 The dangling else problem 24
3 Se man tic pi tf aIls , 27
3.1 Pointers and arrays 27
3.2 Pointers are not arrays 32
3.3 Array declarations as parameters 33
3.4 Eschew synecdoche 34
3.5 Null pointers are not null strings 35
3.6 Counting and asymmetric bounds 36
3.7 Order of evaluation 46
3.8 The &&, l :, and ! operators ..48
3.9 Integer overflow : 49
3.10 Returning a value from main : 50
ix
x C TRAPS AND PITFALLS
CONTENTS
4 Linkage .....................•............................................................... ; 53
4;1 What is a linker? ; 53
4.2 Declarations vs. definitions; 54
4.3 Name conflicts and the static modifier 56
4.4 Arguments, parameters, and return values .57
4.5 Checking external types 63
4.6 Header files : 66
5 Library fun eli 0 ns ; ; 69
5.1 getchar returns an integer 70
5.2 Updating a sequential file : 70
5.3 Buffered output and memory allocation 72
5.4 Using errno for error detection ; 73
5.5 The signal function 74
6 Th e prep rocesso r 77
6.1 Spaces matter in macro definitions ; .77
6.2 Macros are not functions 78
6.3 Macros are not statements 82
6.4 Macros are not type definitions 83
7 Porta biIity pi tfalls 85
7;1 Coping with change ; ; 85
7.2 What's in a name? 87
7.3 How big is an integer? 88
7.4 Are characters signed or unsigned? ; 89
7.5 Shift operators , 90
7.6 Memory location zero 91
7.7 How does division truncate? 92
7.8 How big is a random number? 93
7.9 Case conversion ; 93
7.10 Free first, then reallocate? ; 95
7.11 An example of portability problems ; ; 96
8 Advice and answers 101
8.1 Advice ; 102
8.2 Answers 105
CONTENTS
C TRAPS AND PITFALLS xi
Appendix: printf, varargs, and stdarg 121
A.1 The pr in tf fami!y 121
Simple format types : 123
Modifiers 127
Flags 130
Variable field width and precision 132
Neologisms :.•........................................................... -.133
Anachronisms 133
A.2 Variable argument lists with varargs.h 134
Implementing varargs .h ; 138
A.3 stdarg. h: the ANSI varargs .h 139