구)홈페이지 오탈자 보기
IT 백두대간, C 언어 펀더멘탈: 견고한 프로그램을 위한 기본 원리

 

페이지오탈자 내용등록일
21

((p21) 두번째 문단 여섯째줄)

따라서 필자는 세 가지 -> 두 가지      
==>
따라서 필자는 두 가지

2006-10-251
29

((p29) 두번째 문단 둘째줄)

한국어를 사용하는 사용하는 사람들

      
==>
한국어를 사용하는 사람들

     

2006-10-251
29

((p29) 첫 문단 마지막 줄)

조감(照鑑)
==>
조감(鳥瞰)

2006-10-251
33

((p33) 두번째 문단 6~7째줄)

"물론 드물지만 꼭 그래야 하는 경우, 즉 과정이 중 요한 경우도 있다." 는 부분이 문맥과 동떨어짐-> 괄호 처리      
==>
(물론 드물지만 꼭 그래야 하는 경우, 즉 과정이 중 요한 경우도 있다)

2006-10-251
38

((p38) 두번째 그림의 2행)

00111001 00000011 00000001
==>
00111010 00000011 00000001

2006-10-251
40

((p40) 첫째줄)

컴파일러의 거쳐서 나온 결과물...
==>
컴파일러를 거쳐서 나온 결과물..

2006-10-251
46

((p46) 두번째 문단 5~6행)

"gcc의 구조가 복잡하여 실제로는 훨씬 많은 과정이 내부에서 일어난다." 는 부분이 문맥과 동떨어짐
-> 괄호처리      
==>
(gcc의 구조가 복잡하여 실제로는 훨씬 많은 과정이 내부에서 일어난다)

2006-10-251
47

((p47) 소스 밑의 2~3행)

>gac-c c.c
>gcc-b.o c.o
==>
>gcc -c c.c
>gcc b.o c.o     

2006-10-251
52

((p52) 밑에서 여섯째줄)

1975년
==>
1955년     

2006-10-251
67

((p67) 밑에서 8번째줄 끝부분)

..... WG14(정확하는
==>
..... WG14(정확히는

2006-10-251
67

((p67) 밑에서 두번째 문단의 마지막줄)

ISO/IEC JTC/SC22/WG14
==>
ISO/IEC JTC1/SC22/WG14 로 변경

2006-10-251
81

((p81) 본문 8번째 줄부터)

"진단 메시지의 특성을 이해한다면~"  이후부터 82쪽의 4번째 줄의 "~있지 않을까 생각해본다."가 들여쓰기 됨.
==>
81쪽에 나와 있는 6번째 항목과 분리된 내용이므로 들여쓰기 되면 안됨.

2006-10-251
82

((p82) 폰트 크기 이상)

두 번째 항목 글씨 크기가 잘못 되었음
==>
두 번째 항목인 "임플리멘테이션이 진단 메시지를 보여주었다면 ..." 부분의 글씨 크기가 잘못 되었음

2006-10-251
83

((p83) 밑에서 6째 줄)

대답이 나온 여유는      
==>
대답이 나온 이유는
     

2006-10-251
86

((p86) 첫번째 줄)

Simual 67
==>
Simula 67

2006-10-251
87

((p87) 밑에서 12번째 줄)

"뱌니 스트로프스트로웁" 다음에 조사 "이" 가 빠졌음      
==>
뱌니 스트로프스트로웁이

2006-10-251
100

((p100) 밑에서 10번째 줄)

ISO 646-1983
==>
ISO 646:1983

2006-10-251
100

((p100) 밑에서 7번째 행)

A
==>
Å

2006-10-251
103

((p103) 12~14번째 행)

Horizontal Tab, Vertical Tab, Form Feed
==>
모두 소문자로만 쓰여져야 함

2006-10-251
105

((p105) 7번째 줄)

"엡사딕"
==>
"엡시딕"

2006-10-251
105

((p105) 5~6번째 행)

C 표준은 십진 숫자를 표현하는 10개의 대형 IBM~
==>
"십진 숫자를 표현하는 10개의" 삭제

2006-10-251
106

((p106) 셋째줄)

바이트(byte) 실행환경
==>
바이트(byte)는 실행환경

2006-10-251
107

((p107) 위에서 여섯째줄)

512=29개
      
==>
512=2^9개

     

2006-10-251
108

((p108) 첫번째 문단 둘째줄)

29=512
==>
2^9=512     

2006-10-251
108

((p108) 역사 속으로 1행)

~워드 단위의 주소체계를 차용했다
==>
워드 단위의 주소체계를 사용했다

2006-10-251
114

((p114) 밑에서 6번째 줄)

문자세트는 소스 문자세트와 실행 문자세트를
==>
문자세트는 기본 소스 문자세트와 기본 실행 문자세트를

2006-10-251
117

((p117) 4째줄)

디렉토리
==>
레퍼토리

2006-10-251
126

((p126) 두번째 문단 3번째 열)

printf
{     
==>
printf
(

2006-10-251
126

((p126))

토큰 분리와 관련된 예에서, 첫번째 예에서는 하단에);가 두번째 예에서는 하단에 (닫는 괄호 밑에);가 잘려 나갔음.
==>
첫번째 예: 마지막 행에 ); 추가
두번째 예: )옆에 ; 추가

2006-10-251
127

((p. 127) 4번째 줄)

1

2006-10-251
133

((p. 133) 4, 5번째 줄)

*I*nterna*l*_*I*nformation_*F*ile_*s*ave_one
*i*nterna*l*_in*f*ormation_*f*ile_*s*ave_two

*는 음영표시
==>
*I*nternal_*I*nformation_*F*ile_*s*ave_one
*i*nternal_*i*nformation_*f*ile_*s*ave_two

*는 음영표시

2006-10-251
133

((p133))

1) iinternal_information_file_save_two
2) information의 처음 i 부분에 음영이 있어야 하는데 f 부분에 음영이 있습니다.
==>
1) internal_information_file_save_two    (처음 i 한번 뺌)
2) information에서의 음영은 최초의 i에 위치합니다.

2006-10-251
138

((p138) 마지막 문단 3째줄)

번역 프로램으로      
==>
번역 프로그램으로
     

2006-10-251
140

((p140) [표 4-4] 2행 3, 5열)

|이중자 | 의미 | 이중자 | 의미
--------------------------------
|  %    | {    |  %    |  #
--------------------------------
==>
|이중자 | 의미 | 이중자 | 의미
--------------------------------
|  %<  | {    |  %:   |  #
--------------------------------

2006-10-251
140

((p140) [표 4-4] 2행 3, 5열)

오탈자: 
%    {    %    #

-->

바로고침: 
<%   {    %:   #
==>
오탈자: 
%    {    %    #

-->

바로고침: 
<%   {    %:   #

2006-10-251
148

((p148) [표 4-5] 2행 1열)

314159
==>
.314159     

2006-10-251
150

((p150) 역사 속으로)

3~5번째 줄의 
8진 상수 하나가 아니라 ... 정의되지 않는다.
==>
8진 상수 하나로 인식되는 것이 아니라 전처리기 숫자로 인식된 토큰을 일반 토큰으로 변환하는 과정에서 정의되지 않은 행동을 일으킨다.

2006-10-251
150

((p150) 역사 속으로)

밑에서 두번째 줄의 
하지만 위에서 설명했듯이
==>
하지만 앞에서 설명했듯이

2006-10-251
151

((p151) [표 4-10] 2행 2,3열)

|십진상수 | 8진 혹은 16진 상수
|------------------------------
|  Int   |   Int
==>
|십진상수 | 8진 혹은 16진 상수
|------------------------------
|  int   |   int

2006-10-251
151

((p151))

[표 4-10] 에서 "없음" 밑의 셀 구분선은 지워져야 함      
==>
[표 4-10] 에서 "없음" 밑의 셀 구분선 삭제

2006-10-251
155

((p155) [그림 4-6])

그림 속의 "확장열" 과 "맵핑"
==>
각각 "확장 문자열"과 "매핑"으로 교체

2006-10-251
160

((p160) 어려운 이야기)

시작 부분의 작은 따옴표
==>
지워야 함

2006-10-251
162

((p162) 중간 부분 제목)

제목인 "다문자 상수"
==>
더 작은 글씨 크기이어야 함

2006-10-251
163

((p163) 밑에서 9~10번째 줄)

"C 언어 입장에서는 ... 않는 것이라고 가정한다"
==>
볼드체로 강조되어야 함.

2006-10-251
163

((p163) 첫번째 줄)

제목인 "확장 문자 상수"
==>
더 작은 글씨 크기이어야 함

2006-10-251
169

((p169) 밑부분 설명)

"1Ex", "1 Ex", "E", "e", "0x7E+macro", "0x7E + macro"
==>
지적한 사항은 모두 고정폭 글꼴이어야 함

2006-10-251
169

((p169) 밑부분 설명)

"1Ex", "1 Ex", "E", "e", "0x7E+macro", "0x7E + macro"
==>
지적한 사항은 모두 고정폭 글꼴이어야 함

2006-10-251
174

((p174) 12번 문제)

(4) [예제 5-6]
==>
(4) [예제 5-5]

2006-10-251
183

((p183) 6번째 줄)

결과는 0이나 1이 나와야
==>
결과는 0이나 -1이 나와야

2006-10-251
183

((p183) 7번째 줄)

최대값은 2^(n-1) 형태를, 최소값은 0, -(2^(n-1))
==>
최대값은 (2^n)-1 형태를, 최소값은 0, -((2^n)-1)

2006-10-251
185

((p 185) [표 5-1-1] 2번째 줄)

CHAR_MAX
==>
SCHAR_MAX

2006-10-251
189

((p189) 맨 아랫줄)

(값 비트에 의한 양수값) - (2^(n-1))
==>
(값비트에 의한 양수값) - (2^(n)-1)

2006-10-251
190

((p190) [그림 5-5-1], [그림 5-6-1])

[5-5-1] 0x1096 = 7574
[5-6-1] 0x1097 = 7575
==>
[5-5-1] 0x1D96= 7574
[5-6-1] 0x1D97= 7575

2006-10-251
198

((p198) 예제 8번째 줄)

for (i = 0, f = 0.0 i<100; i++)
==>
for (i = 0, f = 0.0; i<100; i++)

2006-10-251
198

((p198) 밑에서 네번째줄)

IEEE 754는 좋은 표준에 의해
==>
IEEE 754라는 좋은 표준에 의해

2006-10-251
201

((p201) 수식)

첫부분의 수식은 잘못된 형태임
==>
자세한 내용은 도서 홈페이지의 정오표 참고

2006-10-251
204

((p204-205) 내용 추가)

204쪽 마지막 문단 "그 외에 몇 가지 가능한 매핑을 통해" 옆으로 "여기서 잠깐" 추가
205쪽 두번째 줄 "long double은 배정도에 매핑시킬 수 있다" 의 뒷부분에 내용 추가
==>
204쪽 [여기서 잠깐] 
여기서 "단정도", "배정도"는 반드시 IEEE 754에 의해 정의된 정밀도만을 의미하는 것은 아니다.

205쪽
long double은 배정도에 매핑시킬 수 있다. 물론 202쪽의 요구에 의해 double 형을 IEEE 754 의 단정도에 매핑할 수는 없기 때문에, 이 이야기는 IEEE 754에는 적용되지 않는다.

2006-10-251
227

((p227) 첫번째 문단 두번째줄)

10번 줄에서
==>
11번 줄에서     

2006-10-251
228

((p228) [예제 6-4]의 13행)

void func(int p)
==>
int func(int p)

2006-10-251
233

((p233))

[그림 6-3] 의 <내부 연결> 그림에서 프로그램 소스 #1의 "프로그램 소스 #2의 함수" 는 "프로그램 소스 #1의 함수" 가 되어야 함      
==>
"프로그램 소스 #2의 함수 func() -> 프로그램 소스 #1의 함수 func()     

2006-10-251
236

((p236) 연결을 결정하는 규칙)

대상체를 위한 명칭이 기억부류 지정자 없이 혹은 extern이 아닌 기억부류 지정자를 가지고 파일 통용범위가 아닌 곳에서 선언된 경우
==>
파일 통용범위가 아닌 곳에서, 대상체를 위한 명칭이 기억부류 지정자 없이 혹은 extern이 아닌 기억부류 지정자를 가지고 선언된 경우

2006-10-251
237

((p237) 세번째 문단 일곱째줄)

6번 줄에
==>
16번 줄에     

2006-10-251
239

((p239) 들여쓰기 한 첫번째 문단)

문장이 부자연스러워 조금 고쳐 보았습니다.
==>
연결을 결정하는 규칙을 살펴보면, 함수를 위한 명칭을 선언할 때 기억부류 지정자 extern은 있으나 마나하다는 사실을 확인할 수 있다. 그러나 extern이 비록 파일 통용범위에서 사용되는 static과는 달리 함수명을 선언할 때 유효한 의미를 갖지는 않지만 경우에 따라 extern을 명시적으로 사용함으로써 프로그램의 가독성을 높이는 데 활용할 수 있다.

2006-10-251
240

((p240) 역사 속으로 6번째 줄)

아래 그림에서 (1)과 (2)으로 표시되어 있는 통용범위는 각각 파일 통용범위 방식과 블록 통용개념 방식을 적용했을 때 명칭의 통용범위를 보여준다.
==>
아래 그림에서 (1)과 (2)으로 표시되어 있는 통용범위는 각각 블록 통용범위 방식과 파일 통용범위 방식을 적용했을 때 명칭의 통용범위를 보여준다.

2006-10-251
250

((p250) 1, 5행)

[예제 6-14] 에서 2번 나오는 "라벨" 은 "레이블" 이 되어야 함      
==>
라벨 -> 레이블

2006-10-251
253

((p253) 10째줄)

static nt
==>
static int

2006-10-251
257

((p257) 2번째 표 가운데)

lnt
==>
int

2006-10-251
264

((p264) 본문 1행)

이름에 "형"이 들어가 있어 있듯이
==>
이름에 "형"이 들어가 있듯이

2006-10-251
271

((p271) [그림 6-7]의 위치 조절)

그림 위치가 부적절함
==>
[그림 6-7]을 int fai()[];    /* wrong */ 의 아래로 옮겨야 함

2006-10-251
282

((p282) 11번째 줄)

이제 이들의 기억부류 지정자와 명칭을 모두 지워고
==>
이제 이들의 기억부류 지정자와 명칭을 모두 지우고

2006-10-251
286

((p286) 밑에서 8번째 줄)

func_t real_function();
==>
func_t real_function;

2006-10-251
295

((p295))


==>
7번째 항목의 첫번째 예에서 각 줄의 주석은 앞에 정확히 4칸의 공백을 두고 쓰여져야 함     

2006-10-251
305

((p305))

<여기서 잠깐> 에서 "불완전형은 대상체형이지만" 은 "불완전형은 대상체이지만" 이 되어야 함      
==>
불완전형은 대상체이지만

2006-10-251
348

((p348) 첫문단 첫째줄)

이제 9번 줄은 포인터 puc에 간접지정 연산을 적용하여, i라는 이름의 대상체를 구성하는 바이트 중 가장 작은 주소값을 갖는 바이트의 비트열을 unsigned char형으로 해석한 결과값을 출력한다.
==>
이제 9번 줄은 포인터 puc에 간접지정 연산을 적용하여, i라는 이름의 대상체를 구성하는 바이트 중 가장 작은 주소값을 갖는 바이트의 비트열을 unsigned char형으로 해석한 결과값을 "허공에서" 다시 int형으로 변환하여 출력한다.

2006-10-251
363

((p363) 두번째 문단 셋째줄)

이는 메모리에 접근할 때는 signed char를 사용할 수 없기 때문이다.
==>
이는 일반적으로 메모리에 접근할 때는 signed char를 사용할 수 없기 때문이다.

2006-10-251
382

((p382~383) [예제 7-14-1, 2]의 16~17행)

int pi = &i;
int pj = &j;
==>
int *pi = &i;
int *pj = &j;

2006-10-251
382

((p.382~384) 예제 [7-14-1], [7-14-2])

[7-14-1] 20번줄 swap(pi, pj);
[7-14-2] 20번줄 swap(&pi,&pj);
      
==>
[7-14-1] swap2(pi, pj);
[7-14-2] swap2(&pi,&pj);    

2006-10-251
387

((p387) [예제 7-15-3]의 19번째 줄)

pv = pi;
==>
"pv = pi;" 는 삭제되어야 함

2006-10-251
399

((p399) 3번째 줄)

typedef arr_t[];
==>
typedef int arr_t[];

2006-10-251
401

((p401) 위에서 세번째 행)

a[3]의 3(첨자)를 가리키는 화살표 위치
==>
a[3]의 3(첨자)를 가리키는 화살표 위치 조정

2006-10-251
417

((p417) [예제 7-19-1] 10번, 20번 줄)

10: void push(int data)
20: int pop(void)
==>
10: void push(stack_t data)
20: stack_t pop(void)

2006-10-251
427

((p427) 첫문단 아래)

SUM
==>
SUN

2006-10-251
441

((p441) 제일 위의 코드)

for (pi = ai + 9; pi >= ai; pi--) {
&nbsp; &nbsp; printf("%d
", *pi);
}
==>
이런 식으로 바뀌어야 함

pi = ai + 10;
while (pi != a1) {
    pi--;
    printf("%d
", *pi);
}
     

2006-10-251
441

((p441) 1행)

for (pi = ai + 9; pi >= ai; pi--) {
        printf("%d
", *pi);
    }
==>
개정판, 오탈자페이지에 반영했음.

2006-10-251
448

((p448) 9행)

"array of 10 int 형의 크기 * 2"
==>
"array of 10 int 형의 크기 * i"

2006-10-251
456456

(456)


예제 7-23에  int i; 추가
 

2007-07-273
460

((p460) 별단의 [여기서 잠깐])

배열의 요소 개수를 전달하기 추가적인 매개변수가 없음에 유의하자.
==>
배열의 요소 개수를 전달하기 위한 추가적인 매개변수가 없음에 유의하자.

2006-10-251
462

((p462) 밑에서 4번째 줄)

array of pointer to 4 int
==>
array of 4 pointers to int

2006-10-251
483

((p483) 밑에서 2번째 줄)

이와 같은 함수는 이와 같은 함수는
==>
이와 같은 함수는

2006-10-251
485

((p485) 21, 22번째 줄)

pi=malloc(file_num *sizeof(unsigned int));
if(pi==NULL)
==>
file_size=malloc(file_num *sizeof(unsigned int));
if(file_size==NULL)

2006-10-251
492

((p492) 51번째 줄)

int top1, top2;
==>
int top1 = 0, top2 = 0;

2006-10-251
515

((p515) 세번째 행)

대상체 a와 b를 가리키는
==>
대상체 i와 j를 가리키는

2006-10-251
518

((p518) 두번째 문단 세번째 행)

적절한 포인터로 조정하는 (직)업은 매개변수의
==>
적절한 포인터로 조정하는 (작)업은 매개변수의

2006-10-251
522

((p522) 6번째 행부터)

마지막 호출은 세 개(...)의 인자를 가지고 있다. 또한 마지막 호출의 경우 한 개의 인자를 갖지만 그 데이터형이 나머지
==>
세번째 호출은 세 개(...)의 인자를 가지고 있다. 또한 네번째 호출의 경우 두 개의 인자를 갖지만 그 중 하나의 데이터형이 나머지

2006-10-251
523

((p523) 15번째 줄)

fprintf
==>
sprintf

2006-10-251
529

((p529) 마지막 부분 ~ p530 앞부분)

1.
int func6(int (B), int (D));    /* int func6(int B, int D); */
==>
int func6(int (B), int (D));    /* int func6(int (char *), int D); */

더불어 530쪽 1~2번째 줄의 "함수 func6()는 function(double) returning int 형과" 는 "함수 func6()는 function(char *) returning int 형과" 가 되어야 함

2006-10-251
540

((p540) [예제 8-3] 14번째 줄)

printf("%d, %d
", *a, *b);
==>
printf("%d, %d
", a, b);

2006-10-251
541

((p. 541) [예제 8-7] 16번째 줄)

func1(i, j, k)
==>
func2(i, j, k)

2006-10-251
546

((p546))


==>
[그림 8-5] 에서 "원형 선언" 과 "비원형 선언" 사이가 선으로 연결되어야 함     

2006-10-251
550

((p550) 마지막 문단 첫째줄)

번역 프로그램은 6번과 7번 줄에서 a부터 s까지
==>
번역 프로그램은 6번과 7번 줄에서 a부터 t까지

2006-10-251
574

((p. 574) [예제 8-8] 8번째 줄)

input[MAX_DEPTH-2] = { 2, 3, 4, 5 };
==>
input[MAX_DEPTH-1] = { 2, 3, 4, 5, };

2006-10-251
577

((p577) 페이지 기재 부분 장제목)

7장. 유도형
==>
8장. 함수

2006-10-251
579

((p579) 마지막 문단 첫째줄)

pop()이 함수로 선언되어 있을 간접 지정 연산자가 여럿 붙은 이상한 형태의 함수 호출이 적법했던 것처럼
==>
pop()이 함수로 선언되어 있을 때 간접 지정 연산자가 여럿 붙은 이상한 형태의 함수 호출이 적법했던 것처럼

2006-10-251
584

((p584) 7~8번째 줄)

pv = func;             /* wrong */
pv = (void *) func;    /* wrong */
==>
pv = pf;             /* wrong */
pv = (void *) pf;    /* wrong */

2006-10-251
606

((p606) 밑에서 5번째 줄)

구조체의 멤버는 불완전형인
==>
구조체의 멤버는 완전형인

2006-10-251
610

((p610) 1행~5행)

프로그래머의 편의를 돕기 위해...

struct foobar{
    /*멤버 선언 생략*/
};

foobar object; /* wrong */
==>
(C++에서는) 프로그래머의 편의를 돕기 위해...

struct foobar{
    /*멤버 선언 생략*/
};

foobar object; /*C++에서는 정당한 선언*/

2006-10-251
615

((p615) 6번째 줄)

struct foobar {
==>
typedef struct foobar {

2006-10-251
620

((p620) 밑에서 셋째줄)

student[2].science
==>
student[2].sci

2006-10-251
622

((p622) 밑에서 5번째줄)

멤버 지정 연산의 결과가 갖는 데이터형은 기본적으로 좌측 피연산자로 주어진 멤버의 데이터형이기에 이 결과는 당연하다.
==>
멤버 지정 연산의 결과가 갖는 데이터형은 기본적으로 (우)측 피연산자로 주어진 (구조체) 멤버의 데이터형이기에 이 결과는 당연하다.

2006-10-251
622

((p. 622) 22~24번째 줄)

object
==>
object2

* 모두 통일

2006-10-251
624

((p624) 밑에서 12번째 행)

지키면 바람(지)한 규칙을
==>
지키면 바람(직)한 규칙을

2006-10-251
629

((p629) 여기서 잠깐)

비트 필드를 위한 저장단위는 int형의 크기(가) 같다.
==>
비트 필드를 위한 저장단위는 int형의 크기(와) 같다.

2006-10-251
9629

(629)

기본 단위가 비트가 아니기 때문에 메모에 존재하는

=> 

기본 단위가 비트가 아니기 때문에 메모리에 존재하는

2007-10-211
633

((p633) 10번째 줄)

"비트 필드의 크기는 모든 임플리멘테이션에서 최소 16까지"
==>
"비트 필드의 크기는 모든 임플리멘테이션에서 최소한 16까지" 가 되어야 함(비트 필드의 이식성을 갖는 최대 크기를 설명하는 부분임)     

2006-10-251
633

((p633))

<여기서 잠깐> 에서 두번째 216 = 65535
==>
216-1 = 65535

2006-10-251
635

((p635) 밑에서 8번째 줄)

구조체형은 서도
==>
구조체형은 서로

2006-10-251
643

((p643))

[그림 9-16] 의 첫번째 셀에서 Struct foo {...};
==>
struct foo {...};

2006-10-251
647

((p647) 밑에서 3번째 행)

해석은 분명하게 낼 수 있다.
==>
해석은 분명하게 해낼 수 있다.

2006-10-251
667

((p667) 7번째 행)

구조체의 경(유)와 거의 동일하다.
==>
구조체의 경우와 거의 동일하다.

2006-10-251
675

((p675) 수식 선언)

enum gender{};의 enum(열거 지정자)를 가리키는 화살표의 위치
==>
화살표의 위치 조절

2006-10-251
681

((p681) 9번째 행)

enum foo2{/*...*/YM=7903}bar2=YM;ㄴ
==>
마지막 ㄴ 삭제

2006-10-251
694

((p694) [예제 9-10] 의 10번째 줄)

return (uc / uc) - 1;
==>
return uc - uc;

2006-10-251
699

((p699) 17번째 행)

{9, 10, 11, 12} 중 11까지만 음영박스 처리됨
==>
{9, 10, 11, 12} 모두에 음영박스 처리해야 함

2006-10-251
699

((p. 699) 밑에서 5~6번째 줄)

{ 1, 0, 0, 0 }, { 2, 0, 0, 0 }, { 3, 0, 0, 0 }, { 4, 0, 0, 0 }
==>
{ 1, 0, 0 }, { 2, 0, 0 }, { 3, 0, 0 }, { 4, 0, 0 }

* 각 부분 배열에서 초기치가 하나씩 줄어야 함

2006-10-251
712

((p712) 밑에서 7번째 줄)

pai = pai2;
==>
pai1 = pai2;

2006-10-251
713

((p713) 10째 줄)

unsigned int i;
==>
unsigned int ui

2006-10-251
715

((p715))

[그림 10-3-2] "작은 표현 범위의 무부호 정수형"
==>
[그림 10-3-2] "작은 표현 범위의 유부호 정수형"

2006-10-251
716

((p716))

[그림 10-3-3] 과 [그림 10-3-5] 의 두 수직선 사이를 연결하는 좌측 화살표는 지워져야 함      
==>
[그림 10-3-3] 과 [그림 10-3-5] 의 두 수직선 사이를 연결하는 좌측 화살표 삭제

2006-10-251
720

((p720) 페이지 마지막의 수식 2개)

    (65535*-1) + 65531 = -4
이제 65531을 이진수로 표현하면 다음과 같다.
    11111111 11111011


==>
    (65536*-1) + 65532 = -4
이제 65532를 이진수로 표현하면 다음과 같다
    11111111 11111100
     

2006-10-251
723

((p723) 밑에서 3번째 줄)

"6.553 * 104"
==>
"6.553 * 10^4"

2006-10-251
755

((p755) 밑에서 2~3번째 줄)

-1 과 1 이 모두 서로 바뀌어야 함      
==>
i에 저장되는 결과는 -1이 될 것이다. 하지만 그 반대라면 -1이 아닌 1이 저장될 것이다.

2006-10-251
773

((p773) 12째줄)

(ftable[f1(())])
==>
(ftable[f1()])

2006-10-251
783

((p783) 4번째 줄)

번지 연사자
==>
번지 연산자

2006-10-251
797

((p797) 10~11번째 줄)

유부호 정수형이라는 사실에 유의해야 한다. 이미 유부호 정수형의~
==>
무부호 정수형이라는 사실에 유의해야 한다. 이미 무부호 정수형의~

2006-10-251
799

((p799) 밑에서 13째줄)

object1 = (struct foo)struct2;
==>
object1 = (struct foo)object2;

2006-10-251
813

((p813) 첫째줄, 둘째줄)

E1 * 2E2
==>
E1 * 2^E2

2006-10-251
831

((p831) 첫번째 코드 예제)

unsigned int u;          /* ... */
    if (u & (1u << n) != 0)  /* ... */
==>
두번째 줄의 if 문은

    if (u & (1u << n))

또는

    if ((u & (1u << n)) != 0)

이 되어야 함 (연산자 우선순위 오류)

2006-10-251
832

((p832) [예제 11-5] 4번째 줄)

void print_bin(unsigned int u)
==>
void print_ui_bin(unsigned int u)

2006-10-251
839

((p839) [표 11-18])

E3의 세번째 예 ptr to ∀
==>
ptr to V

2006-10-251
11845

((p845) 밑에서 6번째 줄)

결과는 좌측 피연산자의 값과 데이터형을 갖는다.
-> ... 우측 ..................................................
(잘못된게 아닐까 싶네요;;;)

확인중: 2007년 2월 22일

2007-01-141
11872

((p 872) 5번째줄)

while(*s++ != ''); /* 문자열의 끝(널 문자) 으로 포인터 이동 */

-->
제 생각에는 ++ 이 후위 연산자 이므로 결국 s 가 널문자 다음위치를 가리키게 될 것 같습니다.
*s++ 대신에 *++s 를 하는 방법은
빈 문자열일경우에 문제가 발생하기 때문에 틀린것 같고
s--; 를 저 이후에 한번 해줘야 하지 않을까 싶습니다.

(확인중: 2007년 2월 22일)

2007-01-151
875

((p875) [그림 12-3])

[그림 12-3] 의 마지막 그림에서 마지막 줄 else
==>
[그림 12-3] 의 마지막 그림에서 마지막 줄의 else 는 (밑줄 그어진) 두번째 if 문과 연결되어야 함

2006-10-251
891

((p891) 수식)

마지막 부분의 내용은 잘못된 것임
==>
자세한 내용은 도서 홈페이지의 정오표 참고

2006-10-251
909

((p909) 6번째 줄)

초기치를 갖는 선언이 정의된다
==>
초기치를 갖는 선언이 정의가 된다

2006-10-251
911

((p911) 첫번째 줄)

프로그램 소스에 정의하는 하나만 허락된다
==>
프로그램 소스에 정의는 하나만 허락된다

2006-10-251
921

((p921) 예제 제목)

[예제 13-2-2] 내부 연결의 main() 함수
==>
[예제 13-2-2] 외부 연결의 main() 함수

2006-10-251
942

((p942) 밑에서 2번째 줄)

MAX((255 + 1)
==>
MUL((255 + 1)

2006-10-251
943

((p943) 5번째 줄)

MUL(ADD(MAX_SIZE, 2), 8002)
==>
MUL(ADD(MAX_SIZE, 2), 82)

2006-10-251
944

((p944) 10번째 줄, 12번째 줄)

-10번째 줄 
처음: [구분자()
마지막: [구분자 ]]

-12번째 줄
(( ( a = x++
==>
-10번째 줄 
처음: [구분자 (]
마지막: [구분자 )]

-12번째 줄
(( ( a = x

2006-10-251
945

((p945) 6째줄)

(( {793} * (82]))
==>
(( {793} * (82) ))  (괄호 종류에 유의)     

2006-10-251
948

((p948) 16번째 줄)

한가지 재미있는 사실을
==>
한가지 재미있는 사실은

2006-10-251
949

((p949) 12번째 줄)

FOO BAR )를 확장한 결과는 8002가 될까, 아니면 8002 )가 될까?
==>
FOO BAR )를 확장한 결과는 7903이 될까, 아니면 7903 )가 될까?

2006-10-251
954

((p954) 9~10번째 줄)

int i1, i2, dresult;
double d1, d2, iresult;
==>
int i1, i2, iresult;
double d1, d2, dresult;
iresult 와 dresult 의 위치가 바뀜

2006-10-251
960

((p960) 소스 코드 2, 4행)

2행: char *s1=string( This will become a string.);
4행: char *s2=string("   is the vertical tab.", he says.);


==>
2행: char *s1=STRING( This will become a string.);
4행: char *s2=STRING("   is the vertical tab.", he says.);

2006-10-251
963

((p963) 여덟째줄)

expanded to int aaa1 = 1
==>
expanded to int var1 = 1

2006-10-251