cunleashed-heathfield2000

0001-01-01

C Unleased: From Knowledge to Mastery

by Richard Heathfield, Lawrence Kirby, et al.

SAMS Publishing 2000

Chapter 1

Page Remark
4 C
quicksort
ANSI C
5 Linux
“there are many things you can do in C that most people seem to think you can’t do”
C Programming: A Modern Approach. by K. N. King (1996) 0-393-96945-2
portability
algorithms
C++
6 types, operators, expressions, control flow, functions, syntax, pointers,
arrays, structures, unions, stream i/o, strings, scope, visibility,
preprocessor, variable, addresses, NULL
dereference
strcpy
7 void pointer
8 casts
“I strongly recommend that you read it”
PC (Personal Computer)
9 lingua franca, C
10 Windows
Borland C++
EBCDIC
DOS
UNIX
binary tree
LE/370
Natural Language Processing
11 Murphy’s Law
12 code quality
CD (Compact Disc)
coding style
13 Peter van der Linden
debugging
memory management
simulations
recursion
linked list
stack
queue
deque
tries (trees)
sparse array
graph
library
matrices
polynomial interpolation
similtaneous equations
Digital Signal Processing (DSP)
Fast Fourier Transforms
expression parsing
Ian Kelly
ad-hoc
Mike Wright
genetic algororithms
Internet
CGI
Chad Dixon
porting (software)
13 pi
circumference
diameter
radius
decimal place
electronic trading
e-commerce
14 floppy disk
Stephen Wilms
embedded systems
C99
GPL
source code
15 encryption
carriage return
newline
line feed
mainframe
MS-DOS
terminal emulator
16 Usenet - comp.lang.c
Usenet - moderation
newsgroup
17 FAQ - Steve Summit - comp.lang.c
newsgroup etiquitte
18 HTML
attachment
text-only clients
denizen

Chapter 2

Page Remark
22 holy wars in computing culture
revisiting code
23 1TBS
Allman style bracing (BSD style)
The C Programming Language - Kernighan and Ritchie (K&R)
Eric Allman
24 Whitesmiths C compiler bracing style
GNU bracing style
Emacs
25 block statement syntax to prevent bugs
26 whitespace
indentation
27 2, 3, 4, 8 space indentation
tabs and mainframes
Microsoft Visual C++
whitespace around tokens
poor use of whitespace
28 International Obfuscated C Coding Competition (IOCCC)
IRC
whitespace around operators
29 diff + “fixing” whitespace
GNU indent
“Goto statement considered harmful” - Djikstra
goto
goto, abuse of
30 “jump forward, not backward”, in reference to goto
break
switch
continue
COBOL
fgets()
strchr()
31 while(1)
32 for(;;)
infinite loops
return
34 QBasic
“one return per function” rule
36 initialization
37 memset()
38 static and global
39 double
User Acceptance Testing
41 “C is a lowercase language”
intelligibility
42 omitting vowels
reserved names
44 *chart of reserved names
camelCasing
Hungarian notation
Charles Simonyi
45 Windows 3.1
46 naming variables
naming constants
naming types
47 naming macros
naming functions
48 writing useful comments
49 struct tm
comment styles
50 BCPL
51 when not to comment
comment whta code does, not its mechanism
52 comment complex code
comment closing braces
53 commenting using the preprocessor
don’t comment out code
54 void main() heresy
56 EXIT_SUCCESS
EXIT_FAILURE
main(), number of arguments
57 integer math vs. floating point math
58 signal handling
volatile sig_atomic_t
abort()
signal()
passing by value
passing by reference
61 problems with unions
most significant byte
endianness
62 sizeof operator
63 declarations, definitions, and prototypes
65 ones and twos complement
undefined behavior
66 flushing input buffers
fflush()
scanf()
67 ctypes.h
is*() and to*()
EOF
UCHAR_MAX, LONG_MAX, INT_MAX, …
ASCII
69 Cray
70 structure padding
71 macros
72 C vs. C++
73 AmigaDOS
MVS
macOS
EDCDIC

Chapter 3

Page Remark

Chapter 4

Page Remark

Chapter 5

Page Remark

Chapter 6

Page Remark

Chapter 7

Page Remark

Chapter 8

Page Remark

Chapter 9

Page Remark

Chapter 10

Page Remark

Chapter 11

Page Remark

Chapter 12

Page Remark

Chapter 13

Page Remark

Chapter 14

Page Remark

Chapter 15

Page Remark

Chapter 16

Page Remark

Chapter 17

Page Remark

Chapter 18

Page Remark

Chapter 19

Page Remark

Chapter 20

Page Remark

Chapter 21

Page Remark

Chapter 22

Page Remark

Chapter 23

Page Remark

Chapter 24

Page Remark

Chapter 25

Page Remark

Chapter 26

Page Remark

Chapter 27

Page Remark

Chapter 28

Page Remark

Chapter 29

Page Remark