Uzun zaman önce, birisi bana long
64 bit makinelerde 64 bit olmadığını söyledi ve her zaman kullanmalıyım int
. Bu benim için anlamlı değildi. Dokümanları gördüm (Apple'ın resmi sitesindeki gibi) long
, 64 bit CPU için derlerken gerçekten 64 bit olduğunu söylüyor . 64 bit Windows'ta ne olduğunu araştırdım ve buldum
- Pencereler:
long
veint
uzunluk olarak 32-bit kalır ve özel yeni veri tipleri 64 bit tamsayılar için tanımlanmıştır.
( http://www.intel.com/cd/ids/developer/asmo-na/eng/197664.htm?page=2 adresinden )
Ne kullanmalıyım? Ben böyle bir şey tanımlamak gerekir uw
, sw
bir şekilde ((me) imzalı genişlik) long
değilse Windows üzerinde, aksi takdirde hedef CPU bitsize bir kontrol yapmak?
sizeof(long) == 8
bile Windows üzerinde, :-)
size_t
ya da yinelemek için bir yineleyici türü int
ya da değilint64_t
size_t
negatif sayılar yakınında zorlaşır, çünkü imzasızdır size_t
. Yani for(size_t i=0; i<v.size()-2; i++)
vektör büyüklüğü 0 ve 1 başka örneğin başarısız: for(size_t i=v.size()-1; i>=0; i--)
.