티스토리 툴바

GeSHi © 2004-2007 Nigel McNie, 2007-2009 Benny Baumann, 2008-2009 Milian Wolff
  1. /* char_add.c */
  2. #include <stdio.h>
  3.  
  4. int main(void)
  5. {
  6.   char a, b;
  7.   char result;
  8.  
  9.   printf("-50 이상 +50 이하의 수 둘 입력: ");
  10.   scanf("%d %d", &a, &b);
  11.   result=a+b;
  12.   printf("두 수의 덧셈 결과: %d \n", result);
  13.  
  14.   return 0;
  15. }
Parsed in 0.004 seconds at 58.78 KB/s

좋은 사이트 찾았다 ^^ http://qbnz.com/highlighter/index.php


이 코드를 gcc로 컴파일 했다.

예문을 치면서 자료형을 char로 했는데
%c를 쓰지 않고 %d를 쓰는 것이 이상하고 왜 그런지 궁금했다.
%d는 int 에 쓰는 것으로 알고 있다.
하지만 책에 나온 예문이니 묻지도 따지지도 않고
일단 넘어간다.

Family@DESKTOP /e
$ gcc -Wall -o char_add char_add.c
char_add.c: In function 'main':
char_add.c:10: warning: int format, different type arg (arg2)
char_add.c:10: warning: int format, different type arg (arg3)

아까 맘에 걸린 것이 warning 을 불러주신다.
하지만 책에 나온 예문이니 역시나
묻지도 따지지도 않고 넘어가본다.

Family@DESKTOP /e
$ ./char_add
-50 이상 +50 이하의 수 둘 입력: 12 49
두 수의 덧셈 결과: 49

결과는 오류!!!
코드상의 오류인지
gcc의 특성상 문제가 있는 것인지 찾아봐야겠다.

Trackback Address >> http://thefelix.tistory.com/trackback/41 관련글 쓰기

  1. Subject: C언어 난관 2 [열혈강의 C p.115] char_add.c

    Tracked from 비트를 달리는 항해일지 2010/02/23 01:23  delete

    tothefelix 님의 블로그에서 아래의 코드를 가져왔습니다./* char_add.c */#include <stdio.h>int main(void){ char a, b; char result; printf("-50 이상 +50 이하의 수 둘 입력: "); scanf("%d %d", &a, &b); result=a+b; printf("두 수의 덧셈 결과: %d \n", result); return 0;}언뜻 보면 정상적인 ...

댓글을 달아 주세요

  1. 홍이 2010/02/22 22:56  address  modify / delete  reply

    이것이 c언어?!!