목차
책을 읽기 전에 = 4
2판 머리말 = 5
초판 머리말 = 6
chapter 1 시작하기 전에 코딩 스타일이란 무엇인가 = 18
코딩 스타일 교육이 부족하다 = 19
코딩 스타일을 익혀야 할 시기 = 23
코딩 스타일을 배워야 하는 이유 = 25
코딩 스타일은 수학이나 영어보다 더 중요하다 = 27
모든 언어에 코딩 스타일이 필요하다 = 29
C 언어로 코딩 스타일을 설명하는 이유 = 31
코딩 스타일은 컴파일 방식과 하이브리드 방식에 유용하다 = 34
컴포넌트 기반 개발 방식과 코딩 스타일 = 36
코더의 역량이 중요하다 = 39
코딩 관례를 문서화해 두고 통일되게 적용하라 = 41
chapter 2 프로그램 설계 시에 알아야 할 좋은 코딩 습관 최신 표준을 따르라 = 44
개발 인원을 적정한 규모로 한정하라 = 46
프로그램을 새로 만드는 경우보다 유지보수하는 경우가 많다 = 48
프로그램을 쉽게 수정할 수 있다는 생각을 버려라 = 49
새로운 기법을 도입할 때는 신중하라 = 50
'Run and Fix' 전략을 피하라 = 53
chapter 3 띄어 쓸 때 좋은 코딩 습관 한 줄에 한 문장만 쓰라 = 60
선언문과 실행문을 구분하라 = 62
단락을 구분하라 = 65
제어문들 사이를 구분하라 = 68
함수들 사이를 구분하라 = 72
연산자의 앞뒤로 빈 칸을 둬라 = 80
단항 연산자를 피연산자와 띄어 쓰지 마라 = 81
세미콜론 앞에 공백을 두지 마라 = 82
탭을 남용하지 마라 = 82
특히 쉼표 뒤에 빈 칸을 둬라 = 83
쉼표 뒤에 너무 많은 빈 칸을 두지 마라 = 84
변수 초기화 시 줄을 맞춰라 = 85
한 줄에 변수 한 개만 선언하라 = 89
chapter 4 들여 쓸 때 좋은 코딩 습관 중괄호 위치 = 92
중괄호 위치를 통일시켜라 = 95
내부 블록을 들여 써라 = 96
피제어부를 들여 써라 = 99
쓸데없는 들여쓰기를 하지 마라 = 102
들여 쓰는 정도를 일정하게 하라 = 103
들여 쓰는 깊이를 적당하게 하라 = 105
내어쓰기를 하지 마라 = 106
chapter 5 주석을 작성할 때 좋은 코딩 습관 다양한 주석 형태 = 108
한 줄 주석과 주석 상자를 구분하라 = 110
변수 사전 작성용 주석을 달아라 = 114
의사코드를 프로그램에 기입하라 = 116
프로그램의 목적을 주석으로 달아라 = 119
프로그램의 앞부분에 머리 주석을 반드시 달아라 = 121
상등 연산자 옆에 주석을 달아 두자 = 128
닫는 중괄호에 주석을 달아라 = 129
함수를 충분히 설명하는 주석을 함수 안에 달아라 = 132
주석 표기의 원칙 = 133
chapter 6 식별자 이름을 지을 때 좋은 코딩 습관 Ⅰ
변수 이름을 체계적으로 지어라 = 136
헝가리안 표기법으로 변수 이름을 지어라 = 137
변수의 자료형을 변수 이름에 접두사로 표기하라 = 138
기억 부류를 접두사로 활용하라 = 140
함수의 역할을 접두사로 활용하라 = 143
자신만의 접두사를 만들어 활용하라 = 146
chapter 7 식별자 이름을 지을 때 좋은 코딩 습관 Ⅱ
이름을 의미 있게 지어라 = 150
비슷한 변수 이름을 사용하지 마라 = 152
의미를 잃지 않는 범위에서 짧게 지어라 = 153
이름이 길면 밑줄 또는 대소문자로 구분하라 = 156
변수 이름을 밑줄로 시작하지 마라 = 157
밑줄을 과도하게 사용하지 마라 = 158
대소문자를 적절히 배합해 식별자 이름을 지어라 = 159
대소문자 구분을 악용하지 마라 Ⅰ = 162
대소문자 구분을 악용하지 마라 Ⅱ = 163
클래스 이름과 변수 이름을 같게 하지 마라 = 164
변수 이름 중 강조할 부분을 대문자로 처리하라 = 165
chapter 8 연산자를 사용할 때 좋은 코딩 습관
조건 연산자도 때로는 가독성을 높인다 = 168
연산자의 우선순위에 의존하는 식을 만들지 마라 = 169
포인터 연산자를 변수 이름에 붙여서 써라 = 170
시프트 연산을 지양하고 산술 연산을 하라 = 172
극단적으로 효율성을 추구하지 마라 = 174
chapter 9 명료한 프로그램을 만드는 좋은 코딩 습관
약삭빠른 코드 대신에 명료하고 이해하기 쉬운 프로그램을 작성하라 = 178
while 문에서 관계/대입 연산자의 우선순위를 혼동하지 마라 = 180
암시적인 'non zero test'를 하지 마라 = 182
조건식에 대입문을 사용하지 마라 = 184
부작용이 나타나지 않도록 주의하라 = 185
함수 원형에도 인수 자료형을 표기하라 = 189
가인수에도 이름을 기입하라 = 191
반환 자료형을 반드시 표기하라 = 193
결과값에 주의하라 = 194
for 문 등의 조건에서 연산하는 일을 지양하자 = 196
잉여 괄호를 아낌없이 사용하라 = 197
else 문에 중괄호를 사용했으면 if 문에도 쓰라 = 201
함수의 끝에 반드시 return 문을 적어 둬라 = 201
chapter 10 이식하기 쉬운 프로그램을 만드는 좋은 코딩 습관
파일 이름의 길이를 14자로 제한하라 = 204
파일 이름에 특수 문자를 사용하지 마라 = 206
조건부 컴파일을 활용해 이식성을 높여라 = 207
컴파일러의 한계를 인식하라 = 209
자료형의 크기가 달라질 수 있다는 점을 고려하라 = 211
절대 경로를 지정하지 마라 = 212
이식성과 효율성 중 어느 한쪽을 선택하라 = 214
포인터 대신 배열을 사용해 이식성을 높여라 = 215
가독성을 고려해 이식성이 좋은 언어를 선택하라 = 216
저수준 언어로 작성한 코드를 끼워 넣지 마라 = 217
chapter 11 정밀한 프로그램을 만드는 좋은 코딩 습관
컴퓨터는 생각보다 정밀하지 않다 = 220
정밀한 계산이 필요하다면 부동소수점 연산을 피하라 = 221
정밀한 계산에는 float형보다 double형을 사용하라 = 223
정수형의 크기를 확인하라 = 225
계산 단위를 반드시 명시하라 = 227
나눗셈 연산에는 주의를 기울여라 = 229
자료형의 변환이 이루어지지 않도록 하라 = 231
확실하게 문법을 익혀 둬라 = 233
계산 결과가 선형으로 나오지 않을 수 있다는 점에 주목하라 = 234
chapter 12 성능 향상을 위한 좋은 코딩 습관
성능이 중요하다면 출력을 자제하라 = 238
연산을 단순한 형태로 바꿔라 = 239
효율성이 요구되는 큰 파일을 다룰 때는 바이너리 파일을 사용하라 = 240
팩키드 구조체와 언팩키드 구조체의 장단점을 인식하고 사용하라 = 241
실행 환경을 고려해 언어를 선택하라 = 244
상황에 맞는 수단을 선택하라 = 246
더 나은 자료 구조를 선택하라 = 247
chapter 13 이해하기 쉬운 프로그램을 만드는 좋은 코딩 습관
goto 문을 사용하지 마라 = 250
C의 구성 요소를 치환하지 마라 = 252
긴 자료형 이름을 짧게 바꿔 사용하라 = 255
3항 연산자보다는 if 문을 사용하라 = 258
배열의 차원을 3차원으로 한정하라 = 259
구동 함수인 main 함수의 역할을 생각하라 = 259
상수를 기호 상수나 const 형태의 상수로 대체해 사용하라 = 262
변수 선언부를 배치할 때 순서를 고려하라 = 263
될 수 있으면 전역 변수를 사용하지 마라 = 265
KISS 원칙을 지켜라 = 266
chapter 14 사용자 인터페이스를 처리할 때 좋은 코딩 습관
입력값을 저장할 변수의 크기를 충분히 확보하라 = 268
변환 지정자와 매개변수의 개수를 일치시켜라 = 269
scanf() 함수보다는 fgets()와 sscanf() 함수를 사용하라 = 271
fflush() 함수를 사용해 표준 입출력 장치의 버퍼를 비워라 = 274
chapter 15 오류 없는 프로그램을 만드는 좋은 코딩 습관
배열의 첨자는 0부터 시작한다는 것을 잊지 마라 = 280
치환 문자열을 반드시 괄호로 씌워라 = 282
파일을 열었다면 반드시 닫아 둬라 = 284
컴파일러의 경고(warning error)를 무시하지 마라 = 287
런타임 오류를 인식하고, 그것이 발생하지 않도록 코드를 작성하라 = 289
배열이 큰 경우에는 정적 변수로 선언하라 = 293
기억 공간을 충분한 크기로 정해 둬라 = 296
메시지 교환에 의한 창발 효과에 주의하라 = 297
chapter 16 생산성 향상을 위한 좋은 코딩 습관
상충 관계 중 어느 쪽을 추구할지를 미리 정해 둬라 = 300
신중하게 최신 도구를 적용하라 = 301
표준 라이브러리 정도는 모두 외워라 = 302
코드 블록을 최대한 쪼개라 = 303
용어를 명확히 구분하라 = 304
구조체, 열거체, 공용체 용어를 명확히 하라 = 306
개념을 명확히 구분하라 = 307
객체, 클래스, 인스턴스를 확실히 구분하라 = 308
Appendex (부록)
참고할 만한 웹 페이지와 검색 방법 = 310
주요 참고 문헌 = 316
후기 Ⅰ : 소프트웨어 '출판'이라는 관점에서 바라보기 = 317
후기 Ⅱ : 코더를 지나 프로그래머로 = 326