SCN开头的宏
概要:
以SCNdMAX为例。
#define SCNdMAX character_string_literal
描述:
以下对象式宏会扩展为包含转换说明符的字符串字面量,其中转换说明符可能使用长度修饰符修饰;这些对象式宏适合在转换对应的整数类型时在格式化输入函数的格式参数中使用;这些对象式宏的通用格式为:SCN + 转换说明符 + 与ISO/IEC 9899:2018标准第7.20.1 Integer types节中类型名对应的名称;在这些对象式宏中,N表示ISO/IEC 9899:2018标准第7.20.1 Integer types节中描述的整数类型的宽度;例如:宏SCNdFAST32可用于格式化输入int_fast32_t类型整数。
以SCN开头的宏具体如下:
1、用于有符号整数的宏
SCNdN | SCNdLEASTN | SCNdFASTN | SCNdMAX | SCNdPTR |
SCNiN | SCNiLEASTN | SCNiFASTN | SCNiMAX | SCNiPTR |
2、用于无符号整数的宏
SCNoN | SCNoLEASTN | SCNoFASTN | SCNoMAX | SCNoPTR |
SCNuN | SCNuLEASTN | SCNuFASTN | SCNuMAX | SCNuPTR |
SCNxN | SCNxLEASTN | SCNxFASTN | SCNxMAX | SCNxPTR |
以SCN开头的宏可用于fscanf系列函数和fwscanf系列函数的格式化输入。
上述宏与ISO/IEC 9899:2018标准第7.20.1 Integer types节中整数类型的对应关系如下表所示:
宏 | 对应整数类型 |
SCNdN | intN_t |
SCNdLEASTN | int_leastN_t |
SCNdFASTN | int_fastN_t |
SCNdMAX | intmax_t |
SCNdPTR | intptr_t |
范例:
|
|
输出:
5
a = 5
10
b = 10
15
c = 15
20
d = 20
25
e = 25
GCC编译器<inttypes.h>头文件中上述宏定义如下:
#define SCNd32 "d"
#define SCNdLEAST32 "d"
#define SCNdFAST32 "d"
#define SCNdMAX "I64d"
#define SCNdPTR "d"
相关内容:
PRI开头的宏 | 用于格式化输出函数的宏。 |