平时学习中,我们一般都是用int long double类的类型,需要知道的不同的机器这些类型的所占的字节数是有差别的,如int在64位机器上是占4个字节,也就是32位的数据,long则是8个字节,也就是64位字节,但如果在不同的处理器平台上,可能都有区别,最好还需要看当前编译器定义.
为了解决这个问题,一般引入char ->int_8 , int -> int_16, long -> int_32,long long ->int_64.
以上类型都不是新定义的类型,都是头文件下typedef定义,如typedef char bool;
一般来说,一个c的工程一定要做上面的一些工作,因为你会涉及跨平台,不同的平台会有不同的字长,所以利用预编译和typedef可以有效维护代码.为了用户方便,C99也做了相关工作,我们直接使用就好,按照posix标准,一般整形对应的*_t类型为
1字节 uint8_t 2字节 uint16_t 4字节 uint32_t 8字节 uint64_t
使用的时候,直接使用上述类型,一定程度避免跨平台不同字节的问题.