术语 "format specifier" 是术语 "conversion specifier" 的同义词吗?
Is the term "format specifier" a synonym for term "conversion specifier"?
C11 和 C17 标准都使用术语“转换说明符”和“格式说明符”。它们是同义词吗?如果是,那为什么引入同义词?如果不是,那它们有什么区别?
格式说明符仅指定转换格式(即'f'),其中转换说明符表示整个说明符(即%*13lf)。
我以这个答案为例:
What is the difference between conversion specification and format specifier in C?
“格式说明符”似乎只是一个 semi-formal 术语。唯一使用该术语的规范性文本是 inttypes.h
标题 7.8.1,但没有提供“格式说明符”是什么的解释。尽管 inttypes.h
将大小和 type/signedness 混合到一个术语中,但由于 stdint.h
类型的性质。它说 PRId32
中的 d
是一个转换说明符,然后 PRId32
作为一个整体应该是一个格式说明符?虽然 fprintf/fscanf 分隔例如“长度修饰符”和“转换说明符”,但 %ld
中的 l
将是长度修饰符,而 d
是转换说明符。
fprintf 和 fscanf 函数定义了一个术语转换规范,例如 C17 7.21.6.1,强调我的:
Each conversion specification is introduced by the character %. After the %, the following
appear in sequence:
- Zero or more flags...
- An optional minimum field width...
- An optional precision
- An optional length modifier
- A conversion specifier character that specifies the type of conversion to be applied.
以上也是术语转换说明符的正式定义。然后这些函数将有效的转换说明符列为 d, i, f
等等。
“格式说明符”和转换规范似乎是同一个意思。
独立于标准,看其他答案很混乱,所以只看这些术语在英语中的含义,我倾向于说
“转换说明符” 描述了数据从中转换而来的本机类型(int、char、double),而 “格式说明符” 描述或包括表示(字段长度、填充)。
C11 和 C17 标准都使用术语“转换说明符”和“格式说明符”。它们是同义词吗?如果是,那为什么引入同义词?如果不是,那它们有什么区别?
格式说明符仅指定转换格式(即'f'),其中转换说明符表示整个说明符(即%*13lf)。
我以这个答案为例: What is the difference between conversion specification and format specifier in C?
“格式说明符”似乎只是一个 semi-formal 术语。唯一使用该术语的规范性文本是 inttypes.h
标题 7.8.1,但没有提供“格式说明符”是什么的解释。尽管 inttypes.h
将大小和 type/signedness 混合到一个术语中,但由于 stdint.h
类型的性质。它说 PRId32
中的 d
是一个转换说明符,然后 PRId32
作为一个整体应该是一个格式说明符?虽然 fprintf/fscanf 分隔例如“长度修饰符”和“转换说明符”,但 %ld
中的 l
将是长度修饰符,而 d
是转换说明符。
fprintf 和 fscanf 函数定义了一个术语转换规范,例如 C17 7.21.6.1,强调我的:
Each conversion specification is introduced by the character %. After the %, the following appear in sequence:
- Zero or more flags...
- An optional minimum field width...
- An optional precision
- An optional length modifier
- A conversion specifier character that specifies the type of conversion to be applied.
以上也是术语转换说明符的正式定义。然后这些函数将有效的转换说明符列为 d, i, f
等等。
“格式说明符”和转换规范似乎是同一个意思。
独立于标准,看其他答案很混乱,所以只看这些术语在英语中的含义,我倾向于说
“转换说明符” 描述了数据从中转换而来的本机类型(int、char、double),而 “格式说明符” 描述或包括表示(字段长度、填充)。