C의 고전 교재 KNK를 공부하며 정리한 내용입니다. C Programming: A Modern Approach
따배씨를 마치고, 부록 자료구조를 공부하다가 여러 번의 부침을 겪었다. 결국 따배씨 부록 공부는 일단 중단했다.
복습이 부족하고 내용을 100% 체화시키지 못해서라고 이유를 추측해본다. 시간적 여유가 있다면 조금 빨리 듣는 부분이 있더라도 따배씨 전체를 다시 듣고 빈 부분을 메워가는 게 최선이겠지만, 어쩔 수 없이 필요한 부분만 차선으로 공부해야겠다..
고 생각을 했는데, 어차피 따배씨 이후에 KNK와 KNR을 추가로 보기로 생각하고 있었던 터라, 바로 KNK로 넘어가기로 했다.
따배씨와 KNK가 큰 난이도 차이를 갖는 것도 아닐 것이고, 무엇보다 따배씨 복습에서 가장 중요한 것은 '어느 부분을 모르는지' 아는 것이기 때문에, KNK역시 동일한 효과를 만들어줄 것이라고 생각된다. 부족한 부분은 KNK와 따배씨로 이중 복습이 가능하다는 점에서 KNK로 넘어가는 것은 나쁘지 않은 선택으로 생각된다. Abstract Data Type 을 KNK (2판) 에서 다룬다는 부분도, 바로 KNK로 넘어가게 된 선택의 이유가 됐다
KNK를 통해 얻고자 하는 바는 다음과 같다
이제부터의 내용은 KNK에서 정리한 내용이다.
C - UNIX OS를 만들기 위해 생긴 언어
기존의 어셈블리어는 각 기계마다 다른 문법을 가져 이식성이 없었다. 이에 최초의 C언어는 B 언어 등을 기반으로 'portable' 한 어셈블리어를 만들고자 하는 과정에서 생겨났다.
C 표준
C를 만든 데니스 리치가 Kernighan과 함께 써낸 책 K&R은 C의 표준으로 쓰였으나, 모호한 내용과 추가된 기능으로 표준의 필요성이 대두되었다. 이에 ANSI C가 생겼고 이후 ISO 에서 C89표준, C99 표준을 만들었다. (현재는 C11, C18까지 표준이 나왔으나, 확장성을 갖는 C++과 달리 C는 보수적으로, 표준에 변화가 적다)