히스토리
- 임베디드 리눅스 시스템 프로그래밍 관련 문서를 담을 그릇
관련메타
@옌스구스테트 모던 C Modern C
(옌스 구스테트 2022)
- 옌스 구스테트 남기혁 2022
C만이 가진 고유한 개념과 작성 기법을 배워 ‘더 완전한’ C 프로그램을 작성할 수 있다!C 언어는 50년 이상된 프로그래밍 언어이며, 처음 등장한 이후 컴퓨터, 전화기, 카메라, 냉장고, 자동차 등 프로그래밍 인터페이스를 가진 거의 모든 기기에서 사용되고 있다…
C만이 가진 고유한 개념과 작성 기법을 배워 ‘더 완전한’ C 프로그램을 작성할 수 있다!
C 언어는 50년 이상된 프로그래밍 언어이며, 처음 등장한 이후 컴퓨터, 전화기, 카메라, 냉장고, 자동차 등 프로그래밍 인터페이스를 가진 거의 모든 기기에서 사용되고 있다. 이처럼 C로 만든 프로그램이나 시스템은 어디서나 볼 수 있지만 제대로 된 C 관련 자료는 굉장히 드물다. ISO C 표준 공동 편집자인 저자는 최신 C 표준을 기반으로 C만이 가진 고유한 개념과 작성 기법을 소개하고, C 언어에서 특별히 가치 있게 눈여겨볼 부분을 주로 설명한다.
레벨 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 요약
-
5장 값과 데이터
-
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 요약
Comments