solaris 10 long long 형 질문드립니다.
글쓴이: idrukawa / 작성시간: 목, 2012/03/22 - 2:26오후
int main( int argc, char **argv )
{
long lTmp;
long long llTmp;
#if 1
lTmp = 1234567890;
llTmp = 12345678901;
printf( "lTmp: %lu, llTmp: %llu\n",
lTmp, llTmp );
#endif
printf( "sizeof(short): %d, sizeof(long): %d, sizeof(long long): %d\n"
"sizeof(double): %d\n",
sizeof(short), sizeof(long), sizeof(long long), sizeof(double) );
return 0;
}
위와 같이 아~주 간단한 테스트 코드를 작성했습니다.
컴파일부터 에러가 나는데요.
test/DataType] g++ test.cpp
test.cpp: In function `int main(int, char**)':
test.cpp:14: error: integer constant is too large for "long" type
long long = 64bit이라 (2^63 - 1)까지는 무리없이 입력이 가능하지 않을까 싶은데요...
11자리 숫자부터 변수에 저장이 안됩니다.
조언좀 주세요ㅠ
Forums:
llTmp = 12345678901LL; 상수도
상수도 자료형이 있습니다. 뒤에 postfix를 붙이지 않은 정수 상수는 int로 취급됩니다. long이던가? 여하튼 long long 은 LL 붙여야 해요.
캄사합니다 ㅎ
캄사합니다 ㅎ
댓글 달기