Uzun zaman önce, birisi bana long64 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:
longveintuzunluk 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, swbir şekilde ((me) imzalı genişlik) longdeğilse Windows üzerinde, aksi takdirde hedef CPU bitsize bir kontrol yapmak?
sizeof(long) == 8bile Windows üzerinde, :-)
size_tya da yinelemek için bir yineleyici türü intya da değilint64_t
size_tnegatif 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--).