#include <inttypes.h>
#include <stdint.h>
#include <stdio.h>
// g++ -g -o x x.cpp -D__STDC_FORMAT_MACROS -std=c++11
int main()
{
int64_t a = 32;
//printf("%"PRId64"\n", a);
printf("%" PRId64"\n", a); // 在PRId64前保留一个空格
// 如果不保留空格,则C++11编译时将报如下警告:
// invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
// 将PRId64换成其它宏,情况相同
return 0;
}
0x%"PRIX64" :显示为大写字母 0x%"PRIx64" :显示为小写字母
#include <inttypes.h>中int64_t用来表示64位整数,在32位系统中是long long int,在64位系统中是long int,所以打印int64_t的格式化方法是:
printf("%ld", value); // 64bit OS
printf("%lld", value); // 32bit OS
ISO C99在标准在文件stdint.h中引入了这个整数类型类,这个文件中定义了一组数据类型,形如 intN_t 和 unitN_t 分别表示对不同的N值指定N位有符号和无符号的整数。
这样可以确定数据额的宽度,它们的打印需要使用宏,其以与系统相关的方式扩展为格式串,示例代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <inttypes.h>
int main()
{
int32_t x = 6;
uint64_t y = 120;
printf("x = %" PRId32 ",y = %" PRIu64 "\n",x,y);
return 0;
}
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_50120894/article/details/122376755