Page 3 -
P. 3

Modern C






                    능을 사용하면 큰 도움이 되는 프로젝트라도 코드 베이스를 업데이트하지 않도록 하는, 의도하지
                    않은 부작용이 생겼다.

                    이 책은 주로 JTC1/SC22/WG14에서 정의한 C17[2018]을 다룬다. 하지만 집필 시점에 이 버

                    전을 완벽히 지원하지 않는 컴파일러도 몇몇 있었다. 이 책에 나온 예제를 컴파일하고 싶다면 최
                    소한 C99를 지원하는 컴파일러 사용을 권장한다. C11에 더 추가된(C99) 기능은 필자가 만든 매
                    크로 패키지인 P99와 같은 에뮬레이션 레이어를 이용하는 것으로 충분할 것이다. P99 패키지는
                    http://p99.gforge.inria.fr에서 내려받을 수 있다.





                    C와 C++


                    프로그래밍은 매우 중요한 문화이자 경제 활동으로 자리 잡았으며, 이러한 프로그래밍 세계에서
                    C는 여전히 큰 비중을 차지한다. 인간의 활동이 그렇듯이 C 언어는 기업이나 개인의 관심, 정치,
                    미적 요인, 논리, 운, 무지, 이기심, 자아, 파벌주의, 그 외 여러분의 주된 동기를 비롯한 여러 요

                    인에 의해 발전하고 있다. 그래서 C 언어는 이상적인 형태로 발전하지 못했고 또 그럴 수도 없다.
                    여러 가지 결함과 어색한 부분이 존재할 수밖에 없는데, 이는 역사나 사회적 배경을 감안해야 이
                    해할 수 있다.

                    자매 언어인 C++가 등장한 초창기는 C의 발전 과정에서 중요한 영향을 미쳤다. C++는 C를 바
                    탕으로 몇 가지 기능을 추가해서 진화한 언어라고(C++는 아주 초창기 버전의 C에서 발전했다고)
                    잘못 아는 사람들이 많다. 역사적인 관점에서 완전히 틀린 말은 아니지만 현재는 크게 관련이 없

                    다. 실제로 C와 C++의 계통이 갈라진 지 30년이 넘었으며, 이후로는 서로 독립적으로 발전했다.
                    하지만 두 언어의 발전 과정이 완전히 단절된 것은 아니었다. 개념과 기능에 대한 영향을 주고받
                    고 서로의 기능을 도입하면서 발전했다. 최근 추가된 어토믹과 스레드처럼 몇 가지 새로운 기능은
                    C와 C++ 표준 위원회의 긴밀한 협업을 통해 설계된 것이다.

                    그렇지만 여전히 차이점은 많이 있으며, 이 책에서는 C++가 아닌 C를 주로 다룬다. 이 책에서 소
                    개하는 코드 예제는 대부분 C++ 컴파일러로는 컴파일되지 않을 것이다. 따라서 두 언어를 혼용

                    하지 않기 바란다.

                                                                                                   7





     모던c.indd   7                                                                            2021-12-29   오후 2:32:55
   1   2   3   4   5   6   7   8