Действительно ли u_char является стандартом?

Просто любопытный, если you_char является стандартом. Я всегда использовал его принимающий его, был определен наряду с типами uintX_t и так далее. Но вижу часть нашего перехода кодовой базы от u_char до "неподписанного символа" с причиной, "таким образом, пользователи не должны определять u_char сами"..

20
задан Jason 17 December 2009 в 01:32
поделиться

3 ответа

Строка u_char не фигурирует в этом проекте стандарта C:

http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256. pdf

Насколько я знаю, это не требуется и для POSIX.

Я думаю, что это в BSD (sys / types.h) и Windows (winsock.h). Я бы не стал считать ни один из них «стандартом» - это не формальные стандарты, и они определенно не являются частью стандарта C, но они четко определены и задокументированы.

13
ответ дан 30 November 2019 в 01:05
поделиться

Нет, u_char нестандартный. Если вам нужно использовать стандартный тип, эквивалентный u_char , вы можете использовать uint8_t , который является частью стандартной библиотеки C99 (проверьте соответствие вашей конкретной платформы / компилятора C99). stdint.h определяет этот тип (наряду со многими другими специфическими целочисленными типами). Эта статья в Википедии содержит дополнительную информацию о stdint.h .

5
ответ дан 30 November 2019 в 01:05
поделиться

Его нет ни в каких старых файлах заголовков (за исключением определенных областей, таких как Kerberos и сетевые заголовки), и он не является встроенным типом ни в одном из известных мне компиляторов.

4
ответ дан 30 November 2019 в 01:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: