Creative Commons License

char도 부호가 있다 IT



#include <stdlib.h>
#include <stdio.h>

int
main(int argc, char* argv[])
{
    char b = 255;
    int a = b;
    printf("%d\n", a);

    return 0;
}


아무런 옵션을 주지 않고 gcc로 컴파일 하면 결과는 -1이 나온다. 그러나 "-funsigned-char"옵션을 주고 컴파일하면 255가 나온다. 어떤게 표준이려나? 전자일까?

Powered by ScribeFire.


덧글

  • object 2008/01/14 17:28 #

    원래 char은 signed 아니었나요?
  • 샘이 2008/01/14 17:34 #

    object// 저도 signed로 알고 있습니다. 그런데 가끔 잊고 살죠. 10진수형태로 값을 세팅하지 않고, 16진수형태로 많이 쓰다보니, 나중에 값을 서로 비교할 일이 있을 때 혼돈이 생길 수 있지요. 머리로는 signed이지만 실제로 다룰 때는 unsigned로 생각하기 쉬워서요... (저만 그런가요?)
  • chadr 2008/01/14 21:43 # 삭제

    사실 chadr도 부호가 있다는거..
  • 떠리 2008/01/15 13:55 #

    unsigned 를 간과하고 계산하는 경우가 많죠. 역시나 확실한 명시가 중요하다는걸 드러내는 부분.
  • Neon 2008/01/23 10:40 # 삭제

    int, unsigned int와 같이 char, unsigned char...
※ 이 포스트는 더 이상 덧글을 남길 수 없습니다.

Google Adsense

Google Adsense

Google Analytics



C로그팬박스