术语 "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),而 “格式说明符” 描述或包括表示(字段长度、填充)。