Я слышал, что размер типов данных, таких как int
, может различаться для разных платформ.
Мой первый вопрос: может ли кто-нибудь привести пример, что пойдет не так, когда программа
предполагает, что int
- 4 байта, но на другой платформе это 2 байта?
Другой вопрос, который у меня был, связан. Я знаю, что люди решают эту проблему с помощью некоторых typedefs
,
например, у вас есть переменные, такие как u8
, u16
, u32
- которые гарантированно будут 8 бит, 16 бит, 32 бит, независимо от платформы - мой вопрос в том, как это достигается обычно? (Я не имею в виду типы из библиотеки stdint
- мне любопытно вручную, как можно обеспечить, чтобы какой-то тип всегда говорил 32 бита независимо от платформы?)