stdint.h和inttypes.h有什么区别?
如果都不使用它们,则不会识别uint64_t,但对于其中的任何一个,它都是已定义的类型。
Answers:
如果要使用C99的指定宽度整数类型(即“ int32_t”,“ uint16_t”等),则包括“最低要求”。如果包含此文件,则将获取这些类型的定义,以便能够在变量和函数的声明中使用这些类型,并对这些数据类型进行操作。
如果包含此文件,则将获得stdint.h提供的所有内容(因为inttypes.h包括stdint.h),但是您还将获得执行printf和scanf(以及“ fprintf,” fscanf“等)的功能。 )以可移植的方式使用这些类型。例如,您将获得“ PRIu16”宏,以便可以像下面这样打印uint16_t整数:
#include <stdio.h>
#include <inttypes.h>
int main (int argc, char *argv[]) {
// Only requires stdint.h to compile:
uint16_t myvar = 65535;
// Requires inttypes.h to compile:
printf("myvar=%" PRIu16 "\n", myvar);
}
#include
)。至少在我的Linux系统上(GCC 4.5.2和类似版本)。
#include
的stdint.h。