얼마 전까지 만해도 누군가 long
64 비트 컴퓨터에서 64 비트가 아니라고 말했고 항상 사용해야 int
합니다. 이것은 나에게 이해가되지 않았다. 필자는 Apple 공식 사이트의 문서와 같은 문서 long
가 64 비트 CPU를 컴파일 할 때 실제로 64 비트 라고 말합니다 . 나는 그것이 64 비트 Windows에서 무엇인지 찾아보고
- 윈도우 :
long
및int
길이가 32 비트를 유지하며, 특별한 새로운 데이터 형식은 64 비트 정수에 대해 정의된다.
( http://www.intel.com/cd/ids/developer/asmo-na/eng/197664.htm?page=2에서 )
무엇을 사용해야합니까? Windows에서 아닌 경우 uw
, sw
((un) 부호가있는 너비)와 같은 것을 정의 long
하고 그렇지 않으면 대상 CPU 비트 크기를 확인해야합니까?
sizeof(long) == 8
심지어 Windows에서, :-)
size_t
또는 반복 반복자 타입이 아닌 int
나int64_t
size_t
가 없으므로 음수 근처에서 까다로워집니다 size_t
. 그래서 for(size_t i=0; i<v.size()-2; i++)
벡터의 크기를 0과 1의 또 다른 예를 들어 실패합니다 for(size_t i=v.size()-1; i>=0; i--)
.