什么是UInt8和uint8_t之间的区别

时间:2013-06-05 10:24:42

标签: c++ objective-c c

UInt8uint8_t,或UInt16unit16_t之间有什么区别?

_t意味着什么?

3 个答案:

答案 0 :(得分:38)

在C99中,可用的基本整数类型(没有_t的那些)被认为是不够的,因为它们的实际大小可能因不同系统而异。

因此,C99标准包含几种新整数类型的定义,以增强程序的可移植性。新类型在嵌入式环境中特别有用。

所有新类型都以_t为后缀,并保证在所有系统中统一定义。

有关详细信息,请参阅fixed-width integer types section of the wikipedia article on Stdint

答案 1 :(得分:0)

通常它们用作typedef数据类型。 “_t”代表typedef数据类型。 我们提供这样的名称,以便它们可以在所有文件或庞大的代码库中轻松使用和阅读。

* UInt8和uint8_t - Char *

typedef unit8_t unsigned char

* UInt16和unit16_t *

typedef unit16_t unsigned int (在16位编译器上)

答案 2 :(得分:0)

主要区别在于uintX_t类型是由C99定义的标准C,后来是UIntX。这对代码的可移植性有影响。使用uintX_t类型的代码可以在任何标准C编译器上编译,而不需要任何其他依赖项。另一方面,使用UIntX的代码必须自己定义这些类型,或者依赖于这样做的库或框架。

我不认为Objective-C这样定义任何额外的整数类型,但很可能你的框架(Coacoa,OpenStep?)这样做。如果您的代码在框架之外没有意义,请使用框架上下文中的惯用语。否则尝试坚持标准类型。