C 기반 언어인 JAVA와 C#이 등장하고, C 대체 언어인 C++과 Perl이 등장했지만 여전히 C는 강력하게 쓰이고 있다. 

그리고 C 또한 시간이 지나며 바뀌어야 했다. 그렇게 C99이 등장하게 된다.

다음은 KNK 2nd Edition의 특징이다.

1. C89 표준과 C99 표준을 동시에 완벽하게 커버한다.

2. C89와 C99 라이브러리 기능을 모두 포함시켰다.

3. GCC의 적용범위를 확대했다.

4. 추상 데이터형을 새로 적용했다.

5. 국제 문자의 적용범위를 확대했다.

6. 오늘날의 CPU와 운영체제를 반영하여 업데이트했다.

7. 더 많은 예제와 프로그래밍 프로젝트를 추가했다.

8. 선별된 예제와 프로그래밍 프로젝트에 대한 솔루션을 넣었다.

9. 강사를 위한 웹사이트를 만들었다.

다음은 KNK 2nd Edition의 목표이다.

1. 더 명확하고, 가독성있고, 가능한한 재미있게

2. 남녀노소 접근하기 쉽게

3. 현학적이지 않고, 권위있게

4. 쉬운 학습을 위한 구성

5. 언어가 가진 특징에 빠질 수 있게

6. 강조된 스타일

7. 특정 기계, 컴파일러, 운영체제의 의존을 배제

8. 키워드-개념을 이해하기 위한 삽화 사용

부제인 A Modern ApproachModern이 무엇을 의미하는가?

1. C의 관점에서 바라본다.

2. C의 표준 버전을 강조한다.

3. 미신을 폭로한다.

4. 소프트웨어 엔지니어링을 강조한다.

5. C의 로우레벨 특징을 20장 이후에 설명한다. (몰라도 다양한 분야에서 C가 쓰일수 있기에)

6. 수동 최적화를 강조하지 않는다.

이 책은 네가지 파트로 나눠져있다.

1. Basic Features of C 1-10장에서는 독자가 배열과 함수를 이용해 싱글파일 프로그램을 만들수 있게 만든다.

2. Advanced Features of C 11-20장에서는 이전 챕터에서의 지식을 쌓아 올린다. 개념들이 이번 장에서는 약간 더 어려워지고, 특히 포인터, 문자열, 전처리기, 구조체, 공용체, 열거형, 그리고 C의 low-level적 특징들에 대해 깊게 배운다.

3. The Standard C Library 21-27장에서는 모든 컴파일러에서 사용가능한 C라이브러리를 주로 다룬다. 이번 장은 강의용에 적합한 양이지만 참조용으로 쓰일것이다. (양은 많지만, 필요할때만 참고해서 쓸것 같다는 뜻)

4. Reference 부록 A에서는 C연산자의 모든 목록을 보여준다. 부록 B에서는 C99와 C89의 주요 차이점을 묘사했다. 부록 C에서는 C89와 K&R C의 차이점을 보여준다. 부록 D에서는 C89와 C99의 모든 표준라이브러리를 알파벳순으로 정렬했다. 부록 E는 아스키문자 표를 나열했다. 

본격적인 C공부는 1-20장을 순서대로 공부하고, 21-27의 내용을 추가적으로 공부를 해야한다. (특히 22장에서는 입력/출력이 나오는데 21-27장 중에서 가장 중요한 내용이다.)

야매로 공부하려면 8.3(가변길이배열), 9.6(재귀), 12.4(포인터와 다차원배열), 12.5(포인터와 가변길이배열), 14.5(기타 지침), 17.7(함수 포인터), 17.8(restrict 포인터), 17.9(가변길이구조체배열), 18.6(인라인 함수), 19(프로그램 디자인), 20.2(구조체에서의 비트필드), 20.3(기타 low-level 테크닉) 을 빼고 공부하면 된다.

 

 

하지만, 제대로 공부하기 위해서는 모두 공부하자.

'C언어' 카테고리의 다른 글

BRIEF CONTENTS  (0) 2020.12.21
C언어 정리 포스팅  (0) 2020.12.21

+ Recent posts