U_char - это стандарт? - PullRequest
       9

U_char - это стандарт?

21 голосов
/ 17 декабря 2009

Просто любопытно, является ли стандарт u_char стандартным. Я всегда использовал его, предполагая, что он был определен вместе с типами uintX_t и так далее. Но я наблюдаю некоторые изменения в нашей кодовой базе с u_char на «unsigned char» с причиной «чтобы пользователям не приходилось сами определять u_char» ..

Ответы [ 3 ]

13 голосов
/ 17 декабря 2009

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

http://www.open -std.org / ОТК1 / SC22 / WG14 / WWW / Docs / n1256.pdf

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

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

5 голосов
/ 17 декабря 2009

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

4 голосов
/ 17 декабря 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...