C 프로그래밍 오답노트

문찬승 | 아이콕스 | 2019년 03월 27일 | PDF

이용가능환경 : Windows/Android/iOS 구매 후, PC, 스마트폰, 태블릿PC에서 파일 용량 제한없이 다운로드 및 열람이 가능합니다.

구매

종이책 정가 15,000원

전자책 정가 12,000원

판매가 12,000원

도서소개

C 개발과정에서의 근본적인 질문에 대한 해답

"이 현상은 왜 일어날까?", "왜 느려지지?", "왜 값이 제대로 안 나와?"
실무 개발자라면 위와 같은 질문들은 필수라고 할만큼 당연한 '개선의 계기'가 되는데요.
본 책은 C 개발 과정에 있어 이러한 근본적인 질문들에 대한 도움이 될 만한 내용들을 담고 있습니다.

더불어 컴퓨터공학과 전공의 프로그램의 원리를 간략하게나마 정리하고 얼개를 다시 꿰는 데에 중점을 둔 본 책을 통하여,
1. 전공자들은 전공 지식을 다시 확인하는 차원에서,
2. 비전공자들은 컴퓨터 관련 이론을 어렵지 않게 이해하고,
3. 전공 학부생들이라면 "나중에 비로소 이해된다" 는 선배들 조언의 의미를 짧게나마 맛보았으면 합니다.

부디, 과도를 이용해서 소를 잡는 우를 범하지 않게 도와줄 작은 가이드가 되길 바랍니다.

‘지식의 전수’ 보다 ‘경험의 공유’를 지향합니다!

현존하는 첨단 IT 기술이 경제-사회적으로 융합되는 4차 산업혁명이 대두되기 시작하면서, 해외를 비롯해 국내에서도 초등학생들부터의 코딩 교육 열풍이 이어지고 있습니다. 이젠 어떤 현장에서 어떠한 업무를 수행하건 IT 숙련도에 대한 수요는 늘어날 것이며, 특히 IT 기술과 연관된 사회적 변화에 민감한 대한민국이라면 단순히 ‘다룰줄 아는 기술’을 넘어서서 ‘만들어내는 능력’에 대한 요구가 증가할 것입니다. 이에, 아이콕스는 [애프터스킬] 시리즈를 통해 기초 프로그래밍 시리즈부터 각종 IT 최신 기술에 대한 이야기들을 다뤄보려고 합니다. 다만, ‘기술을 넘어 능력’으로까지 성장하는 데에 가장 중요한 바탕은 ‘경험’이라는 점에서 ‘전수’ 보다 ‘공유’를 지향하는 선배 개발자 여러분들의 목소리를 담으려 노력하였습니다.

■ Easy & Exact
비전공자들에게도 쉬울 수 있도록 풀어 쓰되, 핵심은 ‘NOTE’와 ‘Q&A’를 통해 꼼꼼하게 정리합니다.

■ Basic & Basis
순차적으로 하나하나 설명하되, 직관적인 이미지와 명확한 예제들을 통해 직관적으로 구성합니다.

■ Typical & Timely
꼭 알아야 할 대표적인 사항들을 다루되, 가능한 최신의 도구와 그에 맞는 팁들 위주로 공유합니다.

저자소개

‘1도 모르고’ 프로그래밍에 빠졌던 꼬꼬마. 조기 교육 덕에 유수 대회 수상 후 컴퓨터공학 전공. 병역특례 시절 시스템 프로그래밍/알고리즘과 첫 연을 맺고 이쪽 길에 본격 입성. 이후 데이터베이스 관리 시스템 개발 및 DAUM 검색엔진 개발을 거쳐, 지금은 카카오 모빌리티에서 내비게이션과 씨름 중. 어디 가서 ‘길도 모른단’ 소리 안 듣게 하려 부던히 노력 중인 경로검색 알고리즘 연구자.

목차소개

머리말
이 책의 사용법
부록 다운로드

Chapter 1. 수와 연산
1.1 실수형 자료 사용의 위험성
01 실수형 자료의 저장 방식
02 부동소수점과 고정소수점의 비교
03 실수형 자료의 주의점
1.2 형 변환 시 주의점
1.3 무부호형(Unsigned Type) 사용 시 주의점
01 보수 표현법
02 무부호형 사용 시 문제점
1.4 비트 연산 시 주의점
01 이동(Shift) 연산
02 산술 이동(Arithmetic Shift)과 논리 이동(Logical Shift)
03 이동 연산의 장점과 주의점
1.5 변수의 범위
01 문자형의 overflow
02 실수형의 overflow
1.6 나눗셈의 주의 사항
01 0으로 나누기(Division by Zero)
02 0.0으로 나누기
1.7 증감 연산자 사용 시 주의 사항
01 일반 덧셈 연산 과정
02 증감 연산자
1.8 난수는 난수가 아니다
01 난수의 생성
02 난수표
03 난수의 활용

Chapter 2. 함수
2.1 함수의 반환값
01 인자를 통한 실행 정보의 입력
02 함수의 리턴값 재고
2.2 반환값을 활용하자
01 반환값 활용 예제
2.3 프로그램 수행 시 메모리의 구조
01 메모리 구조
02 변수의 종류
2.4 Call by Value vs Call by Reference
01 함수 인자의 전달 방법
02 피보나치(Fibonacci)
03 하노이(Fibonacci) 탑
2.5 x86 함수 호출 규약(비표준)
01 Cdecl(C declaration)
02 Stdcall
03 Fastcall

Chapter 3. 포인터
3.1 함수로의 인자 전달
3.2 배열과 포인터의 관계
01 배열의 구조
02 문자열
03 포인터와 배열의 차이
04 Strcpy( ) 함수
3.3 다차원 배열과 포인터
01 배열의 선형성
02 포인터 배열
3.4 함수 포인터
01 인자가 없는 함수 포인터
02 인자가 있는 함수 포인터
03 qsort( ) 함수
3.5 포인터 쉽게 사용하기
3.6 잘못된 포인터의 사용
01 허상 포인터(Darling Pointer)
02 와일드 포인터(Wild Pointer)
03 허상 포인터 방어

Chapter 4. 입출력(I/O)
4.1 컴퓨터의 I/O 처리 과정
4.2 컴퓨터 구동 환경에서 자료형의 기록 방식
01 엔디언(Endian)
02 개행 문자(한 줄 띄어쓰기)
4.3 여러 가지 입출력 환경
01 표준 입출력
02 통신 네트워크 I/O
4.4 텍스트 모드와 바이너리 모드
4.5 파일 입출력 프로그램 작성 시 자주하는 실수
4.6 파일 입출력 에러 핸들링 방법
4.7 I/O 성능 개선 방법

Chapter 5. 기타 프로그래밍 팁
5.1 반복문의 종류
01 반복문의 종류
02 반복문 사용 시 주의점
03 반복문의 성능 개선
04 goto 문 활용
5.2 매크로 사용 상의 주의점
01 매크로 사용 시 주의점
02 내장 매크로
5.3 if 문 사용 시 주의점
01 if 문의 조건식 판단 순서
02 if 문의 중첩
5.4 메모리 패딩(Padding)
01 패딩이란?
02 패딩을 사용하는 이유
5.5 디버깅 팁
01 debugbreak( ) 함수

부록
- 아스키코드 표
- 유니코드 한글모음
- 찾아보기

회원리뷰 (0)

현재 회원리뷰가 없습니다.

첫 번째 리뷰를 남겨주세요!