PRI开头的宏
概要:
以PRIdMAX为例。
#define PRIdMAX character_string_literal
描述:
以下对象式宏会扩展为包含转换说明符的字符串字面量,其中转换说明符可能使用长度修饰符修饰;这些对象式宏适合在转换对应的整数类型时在格式化输出函数的格式参数中使用;这些对象式宏的通用格式为:PRI + 转换说明符 + 与ISO/IEC 9899:2018标准第7.20.1 Integer types节中类型名对应的名称;在这些对象式宏中,N表示ISO/IEC 9899:2018标准第7.20.1 Integer types节中描述的整数类型的宽度;例如:宏PRIdFAST32可用于格式化输出int_fast32_t类型整数。
以PRI开头的宏具体如下:
1、用于有符号整数的宏
PRIdN | PRIdLEASTN | PRIdFASTN | PRIdMAX | PRIdPTR |
PRIiN | PRIiLEASTN | PRIiFASTN | PRIiMAX | PRIiPTR |
2、用于无符号整数的宏
PRIoN | PRIoLEASTN | PRIoFASTN | PRIoMAX | PRIoPTR |
PRIuN | PRIuLEASTN | PRIuFASTN | PRIuMAX | PRIuPTR |
PRIxN | PRIxLEASTN | PRIxFASTN | PRIxMAX | PRIxPTR |
PRIXN | PRIXLEASTN | PRIXFASTN | PRIXMAX | PRIXPTR |
以PRI开头的宏可用于fprintf系列函数和fwprintf系列函数的格式化输出。
上述宏与ISO/IEC 9899:2018标准第7.20.1 Integer types节中整数类型的对应关系如下表所示:
宏 | 对应整数类型 |
PRIdN | intN_t |
PRIdLEASTN | int_leastN_t |
PRIdFASTN | int_fastN_t |
PRIdMAX | intmax_t |
PRIdPTR | intptr_t |
范例:
|
|
输出:
a = 5
b = 10
c = 15
d = 20
e = 25
GCC编译器<inttypes.h>头文件中上述宏定义如下:
#define PRId32 "d"
#define PRIdLEAST32 "d"
#define PRIdFAST32 "d"
#define PRIdMAX "I64d"
#define PRIdPTR "d"
相关内容:
SCN开头的宏 | 用于格式化输入函数的宏。 |