只是好奇u_char是否是标准.假设它与uintX_t类型一起定义,我总是使用它等等.但我看到我们的一些代码库从u_char转换为"unsigned char",原因是"因此用户不必自己定义u_char".
Ste*_*sop 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的一部分,但它们是明确定义和记录的.
不,u_char是非标准的.如果您需要使用相当于的标准类型u_char,您可以使用uint8_t它是C99标准库的一部分(检查您的特定平台/编译器是否符合C99). stdint.h定义此类型(以及许多其他特定的整数类型). 这篇维基百科文章包含有关的更多信息stdint.h.