今天做阿里巴巴研发工程师笔试题时,有一题目这样描述,定义了一个结构体,里面有uint8_t, uint16_t, uint32_t和uint_64_t类型变量,问我该结构体占多少个字节。这算是一个比较简单的题目,于是我就在unbutu下做了测试,写了一个结构体定义了变量,在main函数中使用sizeof()函数得到其所占的字节。但是在编译过程中提示: unknown type name 'uint64_t'等错误信息,于是上网搜索下,整理了一些笔记。
uint64_t等类型需要的头文件: #include <stdint.h>。
字节长度:
uint64_t 8字节
uint32_t 4字节
uint16_t 2字节
uint8_t 1字节
从网上查资料可知uint64_t等类型其实也是用typedef来定义的而不是什么新类型,于是想查看其具体的定义情况。
那么如何查看这些类型的定义了?
ubuntu下库文件在usr/include目录下。打开该目录,可以找到stdint.h库文件,打开,我们可以看到uint8_t, uint16_t等类型的定义,如图
从定义中我们可以知道uint8_t等类型其实就是使用typedef来定义的类型。