stdint.h和inttypes.h之间的区别

stdint.h和inttypes.h有什么区别?

如果没有使用它们,uint64_t不会被识别,但是其中任何一个都是已定义的types。

请参阅wikipedia文章inttypes.h。

使用stdint.h作为最小的一组定义; 如果你还需要在printf,scanf等等中使用inttypes.h的便携式支持。

stdint.h

如果要使用指定宽度的C99整数types(即“int32_t”,“uint16_t”等),则包含此文件是“最低要求”。 如果包含这个文件,你将得到这些types的定义 ,这样你就可以在variables和函数的声明中使用这些types,并对这些数据types进行操作。

inttypes.h

如果包含这个文件,你将得到stdint.h提供的所有东西 (因为inttypes.h包含了stdint.h),但是你也可以得到printf和scanf (以及“fprintf”,“fscanf”等等)的工具。 )与这些types以便携的方式。例如,您将得到“PRIu16”macros,以便您可以打印一个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); } 
Interesting Posts