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

StatusFormatAccessCall NumberItem Location
TextUse in library QA76.73.C15 K66 1989Off-site

Details

Description
xi, 146 pages; 24 cm
Subject
  • C (Computer program language)
  • C (Computer program language)
  • C (Langage de programmation)
  • Computacao (Metodologia E Tecnicas)
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