Closed nameofuser1 closed 3 years ago
Вроде как size_t и int
а почему? вроде size_t как раз и задуман как тип размера массива. A int традиционно используется в POSIX для возврата ошибок, например функции open, ioctl возвращают именно int.
Используя int32_t ты намекаешь на 32битность архитектуры (мол это родной тип), а messgen у нас кроссплатформенный.
Вроде как size_t и int
а почему? вроде size_t как раз и задуман как тип размера массива. A int традиционно используется в POSIX для возврата ошибок, например функции open, ioctl возвращают именно int.
Используя int32_t ты намекаешь на 32битность архитектуры (мол это родной тип), а messgen у нас кроссплатформенный.
А причем тут архитектура? Менее кроссплатформенным он не станет от того, что мы будем int32 возвращать. Просто строгая типизация имеет более предсказуемое поведение.
В свете #15 и https://github.com/microavia/messgen/tree/change-max-message-size-to-uint32, когда мы хотим возвращать отрицательные значения и иметь максимальный размер сообщений uint32, у нас варианты возврата есть только int или int64, тк ssize_t на винде вообще не определен. Почему между int и int64 я выберу int64 - uint32 кастисть к int опасно, тк uint32 может быть равен размеру int, тогда возможно переполнение. Понятно, что сообщения таких размеров маловероятны, но все же ничего не мешает строго описать тип.
Давай придем по этим вопросам к консенсусу и переделаем интерфейсы, тк #15 довольно неприятная штука (
Есть еще три варианта:
Когда-то вопрос уже поднимался, но благополучно забыли об этом.