u_char是标准吗?

时间:2009-12-17 01:32:22

标签: c

好奇,如果u_char是标准。假设它与uintX_t类型一起定义,我总是使用它等等。但我看到我们的一些代码库从u_char转换为“unsigned char”,原因是“因此用户不必自己定义u_char”..

3 个答案:

答案 0 :(得分:13)

字符串u_char未出现在C标准草案中:

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

据我所知,POSIX也不要求它。

我认为它在BSD(sys / types.h)和Windows(winsock.h)中。我不认为任何一个是“标准” - 它们不是正式标准,它们当然不是标准C的一部分,但是它们已被明确定义和记录。

答案 1 :(得分:5)

不,u_char是非标准的。如果您需要使用等同于u_char的标准类型,则可以使用uint8_t,它是C99标准库的一部分(检查您的特定平台/编译器是否符合C99)。 stdint.h定义了这种类型(以及许多其他特定的整数类型)。 This Wikipedia article contains more information about stdint.h.

答案 2 :(得分:4)

它不存在于任何较旧的头文件中(除了某些特定区域,如Kerberos和网络头),而不是我所知道的任何编译器中的内置类型。