Я не забываю читать где-нибудь, что QT гарантирует размер некоторых типов данных на поддерживаемых платформах. Это - это int
будут по крайней мере 32 бита везде, и qint32
будут точно 32 бита везде? Или что-то еще?
C++ гарантирует это int
будут по крайней мере 16 битов, и некоторые спокойные структуры как QRect
и QPoint
использовать int
внутренне. Я разрабатываю приложение, где 32 бита необходимы с теми типами, и я не хочу должным быть копировать их функциональность, таким образом, я могу использовать больший тип.
Размер целочисленного типа зависит от компилятора. Я не думаю, что есть гарантия того, что простой int
будет иметь точный размер. Но вы можете убедиться, что это не то, что вы хотите, добавив эту строку в начало вашего main()
:
if(sizeof(int) != 4) {
throw std::runtime_error("int is not 32-bit");
}
Хотя, насколько мне известно, технически возможно, что int не является 32-битным, я никогда не видел платформы, где это не было бы. Представьте себе - символ, 8 бит, короткий, 16 бит, int, .. 24 бита? Это просто не соответствует иерархии, чтобы int не был 32-битным.
Кроме того, вы можете использовать UINT_MAX для подтверждения размера int в вашем данном компиляторе.