Research Catalog
C traps and pitfalls
- Title
- C traps and pitfalls / Andrew Koenig.
- Author
- Koenig, Andrew.
- Publication
- Reading, Mass. : Addison-Wesley, [1988], ©1989.
Items in the Library & Off-site
Filter by
1 Item
Status | Format | Access | Call Number | Item Location |
---|---|---|---|---|
Text | Use in library | QA76.73.C15 K66 1989 | Off-site |
Details
- Description
- xi, 146 pages; 24 cm
- Subject
- Note
- Includes index.
- Contents
- 1 Lexical pitfalls 5 -- 1.1 = is not == 6 -- 1.2 & and 7 -- 1.3 Greedy lexical analysis 7 -- 1.4 Integer constants 9 -- 1.5 Strings and characters 10 -- 2 Syntactic pitfalls 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 Semantic pitfalls 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 &&, 48 -- 3.9 Integer overflow 49 -- 3.10 Returning a value from main 50 -- 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 functions 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 The preprocessor 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 Portability pitfalls 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 -- Appendix: printf, varargs, and stdarg 121 -- A.1 The printf family 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 varagrs.h 139.
- ISBN
- 0201179288
- 9780201179286
- LCCN
- 88016616
- OCLC
- ocm18014955
- 18014955
- SCSB-9469635
- Owning Institutions
- Princeton University Library