일단 C 표준에는 sizeof(int) <= sizeof(long) 이라고 되어있지 항상 더 큰건 아님
1xrgb(1xrgb)2018-02-09 17:25
특정 시스템에서는 long 64bit, int가 32bit 인 곳이 있음
1xrgb(1xrgb)2018-02-09 17:25
왠만하면 int를 쓰는게 나을것같습니다. unsigned long long
BNF(eurobin4321)2018-02-09 17:27
그냥 컴파일러 차이라서 자기가 쓰는거는 어떤지 잘 알아야됨. 참고로 옛날에는 int가 2바이트였던 시절도 있었음. 그리고 엑셀VBA나 VB6는 여전히 int에 해당하는 integer가 2바이트임. 참고로 닷넷은 long이 8바이트임. vs2010도 그럴걸? C#에서 크기 봐봐.
ㅇ(121.174)2018-02-09 17:29
그냥 발전해가면서 어정쩡하게 차이가 생긴거. 혹시나 싶을때는 일일이 확인해보는 수밖에 없음.
https://www.@@ogle.co.kr/amp/dev.likejazz.com/post/69840022906/long과-int는-크기가-같은데-왜-존재하나요/amp
일단 C 표준에는 sizeof(int) <= sizeof(long) 이라고 되어있지 항상 더 큰건 아님
특정 시스템에서는 long 64bit, int가 32bit 인 곳이 있음
왠만하면 int를 쓰는게 나을것같습니다. unsigned long long
그냥 컴파일러 차이라서 자기가 쓰는거는 어떤지 잘 알아야됨. 참고로 옛날에는 int가 2바이트였던 시절도 있었음. 그리고 엑셀VBA나 VB6는 여전히 int에 해당하는 integer가 2바이트임. 참고로 닷넷은 long이 8바이트임. vs2010도 그럴걸? C#에서 크기 봐봐.
그냥 발전해가면서 어정쩡하게 차이가 생긴거. 혹시나 싶을때는 일일이 확인해보는 수밖에 없음.
아니면 stdint.h 불러서 int32_t 이렇게 확실한 자료형으로 사용하는것도.
121.174 // c# 이여? 컴파일러가아니라 언어마다 크기가 다른가여 vs2010 c++에서는 둘다 4바이트던데
ㄴ 언어가 다르면 당연히 컴파일러가 다른거지.