C - Всегда ли использовать платформонезависимые типы данных?

Следует ли везде заменять классические типы данных(short, int, long) на платформонезависимые(int16_t, int32_t, int64_t) из <inttypes.h>, или следует использовать их только там, где важен точный размер переменной? Использовать ли int8_t* в строках вместо char*? Давать ли функции main тип int32_t?


Ответы (1 шт):

Автор решения: KoVadim

с функцией main все очевидно - по стандарту там должен быть тип int. Нет никаких указаний о других вариантах. Я думаю, что если кто то напишет что то другое - он удивит остальных.

Использовать ли int8_t* в строках вместо char*?

не вижу никаких предпосылок этого делать. Опять же, по стандарту, есть упоминание, что тип char должен вмещать код любого символа (как то так).

Следует ли везде заменять классические типы данных(short, int, long) на платформонезависимые(int16_t, int32_t, int64_t) из <inttypes.h>

а зачем? что бы было красиво?

А когда стоит использовать такие типы? Стоит использовать, когда есть гарантии, что там будет именно указанное кол-во бит - например, при разборе сетевых пакетов, реализации архивирования/шифрования/файловых систем/работы с железом.

А вот при написании лабораторной работы - можно и нужно использовать обычные типы (если чего то другого не написано в задании).

→ Ссылка