이미 소장하고 있다면 판매해 보세요.
|
1 기본 스타일
1.1 스타일이란 1.2 분할 컴파일과 링크 1.2.1 왜 나누어야 하는가 1.2.2 혼자 개발하는 경우에도 이점이 있는가 1.2.3 분할 방법 1.2.4 파일 분할 예제 1.2.5 컴파일러의 동작 1.2.6 이름 충돌(naming conflict) 1.3 선언 1.3.1 함수의 암시적 선언 1.3.2 함수의 원형 선언 1.3.3 분할 컴파일의 응용 1.3.4 static 접두사 1.3.5 extern 접두어 1.3.6 변수의 경우 1.3.7 요약 및 문제점 1.4 헤더 파일 만들기 1.4.1 헤더 파일이란 1.4.2 기본적인 헤더 파일 만들기 1.4.3 작성 예 1.4.4 작성 요령 1.4.5 void 이용 1.4.6 enum 활용 1.4.7 const 활용 1.4.8 const를 인자로 활용 1.4.9 const를 사용할 때 주의사항 1.4.10 버그 사례 2 라이브러리 만들기 2.1 라이브러리를 만드는 이유 2.2 헤더 파일 만들기 2.2.1 매크로 정의 2.2.2 상수 정의 2.2.3 구조체, 공용체 정의 2.2.4 자료형 정의 2.2.5 함수의 원형 선언 2.2.6 전역 변수의 extern 선언 2.2.7 다른 라이브러리 헤더 파일의 인클루드 2.2.8 다중 인클루드 문제 2.3 라이브러리 본체 만들기 2.3.1 매크로, 상수, 구조체, 공용체, 자료형의 정의 2.3.2 외부에 공개하는 함수 및 전역 변수의 본문 2.3.3 외부에 공개하지 않는 함수나 정적 변수의 본체 2.3.4 라이브러리 헤더 파일의 인클루드 2.3.5 다른 라이브러리 헤더 파일의 인클루드 2.4 Makefile 2.5 난수 발생 라이브러리의 제작 2.5.1 명세(Specification) 2.5.2 소스 리스트 2.5.3 사용 예 2.6 발전된 화제 2.6.1 구조체 멤버의 은폐 2.6.2 공적 헤더 파일과 사적 헤더 파일 3 설계 3.1 알고리즘 3.1.1 알고리즘과 설계 3.1.2 선형 검색 3.1.3 학습 3.1.4 해쉬 3.2 데이터 구조 3.2.1 배열 3.2.2 링크드 리스트 3.3 설계 사례 3.4 메모리 관리 라이브러리 3.4.1 라이브러리의 개요 3.4.2 데이터 구조 설계 3.4.3 라이브러리 소스 코드 3.4.4 동작 확인 4 버그를 예방하려면 4.1 도구의 활용 4.2 버그가 생기지 않는 코딩 습관 4.2.1 하나의 지역 변수를 여러 용도로 사용하지 말 것 4.2.2 함수의 인자를 다른 목적으로 이용하지 말 것 4.2.3 malloc()과 free()는 서로 가까이 둘 것 4.2.4 구조체는 생성과 동시에 초기화하라 4.2.5 서로 연관된 코드는 가까이 둘 것 4.2.6 포인터는 NULL로 초기화하자 4.2.7 캐스팅을 자제할 것 4.2.8 충분히 캐스팅할 것 4.2.9 일관성 있는 이름 붙이기 4.2.10 sizeof(char)를 명시할 것 4.2.11 점검하기 쉬운 스타일을 취할 것 4.2.12 자신의 의도를 분명히 드러낼 것 4.2.13 충분히 생각한 후에 코딩하라 4.3 버그가 발생했을 때 대처하기 쉬운 코딩 스타일 4.3.1 반납한 포인터는 NULL로 리셋하자 4.3.2 함수의 앞부분에서 인자를 검사할 것 4.4 추적을 위한 코딩 스타일 4.4.1 서로 연관된 것은 같은 디렉토리에 둘 것 4.4.2 함수를 여러 행에 걸쳐서 쓰지 말 것 4.4.3 grep으로 검색하는 경우에 대비할 것 4.4.4 자작 도구의 활용을 의식할 것 4.5 수정과 확인이 쉬운 코드 4.5.1 중괄호를 생략하지 말 것 4.5.2 return을 한 군데로 몰아둘 것 4.5.3 비슷한 코드는 한 곳에 합쳐둘 것 4.5.4 수정 후에는 곧바로 확인할 것 4.6 장래성이 있는 코드 4.6.1 블록이 깊게 중첩되지 않도록 할 것 4.6.2 goto의 사용을 꺼리지 말 것 4.7 코딩 단계에서 신경 써야 할 사항들: 정리 4.7.1 게을러질 것 4.7.2 버릇들이기 4.7.3 다른 사람을 배려하라 4.7.4 규격이나 문법을 맹신하지 말 것 4.7.5 ANSI 규격 5 디버그 5.1 디버그 코드 5.1.1 abort(), assert()의 활용 5.1.2 syslog() 5.1.3 로그 출력 5.1.4 점검 코드 5.1.5 디버깅 레벨 5.2 오류 처리 5.2.1 오류 처리는 함수 마지막에 모아둔다 5.2.2 함수는 처리 결과의 성패 여부를 반환값으로 돌려주도록 한다 5.3 래퍼 함수 5.3.1 간단한 래퍼 함수의 구현 5.3.2 동적 라이브러리를 이용한 래퍼 함수의 구현 6 개발 사례 6.1 프로그램을 만드는 목적 6.2 명세서 작성 6.2.1 기능 설계 6.2.2 기능 명세서 작성 6.2.3 명세서의 리뷰 6.3 코딩 6.3.1 상세 설계 6.3.2 코딩 6.3.3 코드의 리뷰 6.4 테스트 6.4.1 시험 명세서 작성 6.4.2 테스트 항목 6.5 통합 테스트, 릴리즈, 유지보수, 완료 |
|
프로그래밍에도 <스타일>이 있다
라이브러리는 왜, 어떻게 만들어지는가? Algorithm + Data Structure = Program 감기와 버그는 예방이 최고 버그 박멸을 위한 디버깅의 정석 개발 업무 사례와 실습 |