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 |
|---|---|