Я использую cocos2d-x для создания игры, и при использовании «int» в наших играх нужно ли нам беспокоиться об использовании int32_t и int64_t для 32 и 64 систем, или просто объявить, например, «int score = 0;» позаботиться обо всем, что под капотом?
Java int
всегда 32-битный, а long
— 64-битный. C/C++ int
является как правило 32-битным, а long
может быть 32-битным или 64-битным в зависимости от компилятора.
Другими словами, да, вам делать нужно беспокоиться. Или хотя бы быть в курсе...
В Objective-C компиляция более старого исходного кода, который объявлял переменные int, а затем их использование в операторах, таких как операторы NSLog, приведет к предупреждениям о том, что неявное приведение типа int к long не рекомендуется. Это предупреждение, поэтому, если вы не возражаете против большого количества желтых флажков в своем коде, с вами, вероятно, все будет в порядке. Но чтобы избавиться от предупреждений, вы должны явно привести их к длинному (длинному) счету, а не просто к «счету».
Я не знаю насчет java или объективного C, но в C++
int
гарантированно имеет ширину 16 бит, но почти во всех реальных системах компиляторы гарантируют не менее 32 бит (дальнейшее чтение). Если вам нужно 64, используйтеint64_t
.