Не так давно кто-то сказал мне, что long
не 64 бит на 64-битных машинах, и я всегда должен использовать int
. Для меня это не имело смысла. Я видел документы (например, на официальном сайте Apple), что long
действительно 64 бит при компиляции для 64-битного процессора. Я посмотрел, что это такое на 64-битной Windows, и нашел
- Windows:
long
иint
остаются 32-разрядными в длину, а специальные новые типы данных определены для 64-битных целых чисел.
(из http://www.intel.com/cd/ids/developer/asmo-na/eng/197664.htm?page=2)
Что я должен использовать? Должен ли я определить что-то вроде uw
, sw
((un) signed width) как long
, если нет в Windows, и в противном случае сделать чек на целевом процессоре битрейтом?