책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > C
· ISBN : 9791165218409
· 쪽수 : 456쪽
· 출판일 : 2022-01-14
책 소개
목차
레벨 0 만남
1장 들어가며
1.1 명령형 프로그래밍
1.2 컴파일하고 실행하기
1.3 요약
2장 로그램의 핵심 구조
2.1 문법
2.2 선언
2.3 정의
2.4 문장
__2.4.1 반복
__2.4.2 함수 호출
__2.4.3 함수 리턴
2.5 요약
레벨 1 친숙
3장 결국은 제어
3.1 조건부 실행
3.2 반복문
3.3 다중 선택
3.4 요약
4장 계산 표현하기
4.1 산술
__4.1.1 +, -, *
__4.1.2 나눗셈과 나머지
4.2 오브젝트를 수정하는 연산자
4.3 불 연산
__4.3.1 비교 연산
__4.3.2 논리 연산
4.4 삼항 연산자와 조건 연산자
4.5 평가 순서
4.6 요약
05 값과 데이터
5.1 추상 상태 기계
__5.1.1 값
__5.1.2 타입
__5.1.3 바이너리 표현과 추상 상태 기계
__5.1.4 최적화
5.2 기본 타입
5.3 값 지정하기
__5.3.1 복소수 상수
5.4 암묵적 변환
5.5 초기자
5.6 이름 있는 상수
__5.6.1 읽기 전용 오브젝트
__5.6.2 열거형
__5.6.3 매크로
__5.6.4 복합 리터럴
5.7 바이너리 표현
__5.7.1 부호 없는 정수
__5.7.2 비트 집합과 비트 단위 연산자
__5.7.3 시프트 연산자
__5.7.4 불 값
__5.7.5 부호 있는 정수
__5.7.6 고정폭 정수 타입
__5.7.7 부동 소수점 데이터
5.8 요약
6장 파생 데이터 타입
6.1 배열
__6.1.1 배열 선언
__6.1.2 배열 연산
__6.1.3 배열 길이
__6.1.4 매개변수로 사용하는 배열
__6.1.5 스트링은 특별하다
6.2 불투명 타입으로 사용하는 포인터
6.3 구조체
6.4 타입 이름 새로 짓기: 타입 앨리어스
6.5 요약
7장 함수
7.1 간단한 함수
7.2 main은 특별하다
7.3 재귀호출
7.4 요약
8장 C 라이브러리 함수
8.1 C 라이브러리의 기본 속성과 제공 함수
__8.1.1 헤더
__8.1.2 인터페이스
__8.1.3 오류 검사
__8.1.4 경계값 검사 인터페이스
__8.1.5 프로그램 사전조건
8.2 수학 함수
8.3 입력, 출력, 파일 조작
__8.3.1 서식을 적용하지 않은 텍스트 출력
__8.3.2 파일과 스트림
__8.3.3 텍스트 IO
__8.3.4 서식 지정 출력
__8.3.5 서식 없는 텍스트 입력
8.4 스트링 처리와 변환
8.5 시간
8.6 런타임 환경 설정
8.7 프로그램 종료 및 어서션
8.8 요약
레벨 2 이해
9장 스타일
9.1 코드 서식
9.2 이름 짓기
9.3 요약
10장 구성과 문서화
10.1 인터페이스 문서화
10.2 구현
__10.2.1 매크로
__10.2.2 순수 함수
10.3 요약
11장 포인터
11.1 포인터 연산
__11.1.1 주소 연산자와 오브젝트 연산자
__11.1.2 포인더 덧셈
__11.1.3 포인터 뺄셈
__11.1.4 포인터 유효성
__11.1.5 널 포인터
11.2 포인터와 구조체
11.3 포인터와 배열
__11.3.1 배열과 포인터는 접근 방식이 서로 같다
__11.3.2 배열 매개변수와 포인터 매개변수는 서로 같다
11.4 함수 포인터
11.5 요약
12장 C 메모리 모델
12.1 균일 메모리 모델
12.2 유니온
12.3 메모리와 상태
12.4 불특정 오브젝트에 대한 포인터
12.5 명시적 변환
12.6 이펙티브 타입
12.7 정렬
12.8 요약
13장 스토리지
13.1 malloc과 친구들
__13.1.1 가변 크기 배열 예제의 완성 버전
__13.1.2 동적 할당 연산에 대한 일관성 보장하기
13.2 스토리지 기간, 수명, 가시성
__13.2.1 정적 스토리지 기간
__13.2.2 자동 스토리지 기간
13.3 보충 설명: 오브젝트를 정의하기 전에 사용하기
13.4 초기화
13.5 보충 설명: 머신 모델
13.6 요약
14장 고급 처리 과정과 IO
14.1 텍스트 처리
14.2 서식 지정 입력
14.3 확장 문자 집합
14.4 바이너리 스트림
14.5 에러 검사와 클린업
14.6 요약
레벨 3 숙달
15장 성능
15.1 인라인 함수
15.2 restrict 지정자 사용하기
15.3 측정과 인스펙션
15.4 요약
16장 함수 같은 매크로
16.1 함수 같은 매크로 작동 방식
16.2 인수 검사
16.3 호출 문맥에 접근하기
16.4 디폴트 인수
16.5 가변 길이 인수 리스트
__16.5.1 가변 인수 매크로
__16.5.2 참고: 가변 인수 함수
16.6 타입 독립 프로그래밍
16.7 요약
17장 다양한 제어 흐름
17.1 복잡한 예
17.2 순서 정하기
17.3 숏점프
17.4 함수
17.5 롱점프
17.6 시그널 핸들러
17.7 요약
18장 스레드
18.1 간단한 스레드 제어
18.2 경쟁 상태가 없는 초기화와 소멸
18.3 스레드 로컬 데이터
18.4 크리티컬 데이터와 크리티컬 섹션
18.5 상태 변수를 이용한 통신
18.6 복잡한 스레드 관리
18.7 요약
19장 아토믹 접근과 메모리 일관성
19.1 선행 관계
19.2 동기화를 지원하는 C 라이브러리 호출
19.3 순차적 일관성
19.4 그 밖의 일관성 모델
19.5 요약
TAKEAWAY
참고문헌
찾아보기
리뷰
책속에서
C 프로그래밍 언어가 등장하고 매우 오랜 시간이 흘렀다. C 언어에 대한 정통 레퍼런스는 C 언어 창시자인 커니핸과 리치(Kernighan and Ritchie[1978])가 쓴 책이다. C 언어는 엄청나게 다양한 분야에 활용됐다. 실제로 우리 주변에서 C 언어로 작성한 프로그램과 시스템을 흔히 볼 수 있다. 개인용 컴퓨터, 전화기, 카메라, 셋톱박스, 냉장고, 자동차, 메인프레임, 위성 등 프로그래밍 인터페이스를 가진 거의 모든 기기의 시스템은 C 언어로 작성됐다.
이처럼 C 언어로 만든 프로그램과 시스템은 어디서나 볼 수 있지만 정작 C 언어에 대한 제대로 된 정보는 매우 드물다. 능숙한 C 프로그래머조차 잘 모르는 C 언어 기능도 있다. 흔히 C 언어는 ‘배우기 쉬운’ 언어라서 초보자도 금세 작성할 수 있고, 최소한 다른 코드를 복제해서 원하는 기능을 쉽게 구현할 수 있다고 알려져서 그런 것 같다. 이 관점에서 보면 C 언어는 사용자로 하여금 더 높은 수준의 지식을 갖추도록 동기를 부여하는 데 실패한 셈이다.
이 책은 이러한 대중의 인식을 바꾸기 위해 C 언어에 대한 숙련도와 전반적인 프로그래밍 실력에 따라 단계를 나눠서 구성됐다. 어쩌면 독자에게는 생소한 구성일지도 모른다. 특히 포인터와 같은 어려운 주제를 처음부터 깊이 다루어 개념을 잘못 이해하지 않도록 여러 레벨에 걸쳐 설명한다.
(자바, 파이썬, 루비, C#, C++ 등을 비롯한) 다른 프로그래밍 언어와 마찬가지로 보편적으로 적용 가능한 아이디어를 많이 소개하긴 하지만, 이 책에서는 주로 C만의 고유한 개념과 작성 기법, C 언어에서 특별히 가치 있는 부분을 다룬다.
- [들어가며] 중에서