printf()의 출력이 이상하다?!

예전에 나와 같이 일하던 후임 중에 한 명이 어떤 문제를 가지고 왔다. 타겟 디바이스에서 디버깅 하려고 printf()를 사용했는데 아무래도 원하는 결과와는 다르게 나온다는 것이다. 결국 VC++에서도 동일한 문제가 나온다는 것을 확인해서 다음과 같이 문제를 간략화 시켰다.
코드
struct
{
int* a;
int* b;
int* c;
} a = {0, 0, (int*)1};

printf(
"%d, %d, %d\n", a.c, a, a.c);
결과
1, 0, 0
a.c와 a와 다시 a.c의 내용을 출력하는 예제이다. 분명 코드 상으로도 첫 번째 파라미터와 세 번째 파라미터는 모두 a.c로 동일하다. 그런데 결과는 1과 0으로 서로 다르게 나왔다.
아마도 쉽게 실수 할 수 있는 부분으로 생각되는데, 실수 하기는 쉬운데 반해 그 실수를 찾는데는 굉장히 힘들게 될지도 모르겠다.

Posted by 안영기

2009/02/23 00:10 2009/02/23 00:10
Response
0 Trackbacks , 3 Comments
RSS :
http://smgal.ismine.net/tc_191/blog1/rss/response/9

Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다

« Previous : 1 : ... 38 : 39 : 40 : 41 : 42 : 43 : 44 : 45 : 46 : ... 50 : Next »

블로그 이미지

게임 개발을 기반으로 한, 잡다한 개발 기록 저장소

- 안영기

Notices

Archives

Authors

  1. 안영기

Recent Comments

Recent Trackbacks

Calendar

«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

Site Stats

Total hits:
251348
Today:
2
Yesterday:
11