C stdio函数(sprintf、vsprintf和fprintf)背后的命名约定是什么?

C stdio函数(sprintf、vsprintf和fprintf)背后的命名约定是什么?,c,naming-conventions,stdout,C,Naming Conventions,Stdout,一篇文章解释了我们许多人多年来所知道的差异。我的假设是: sprintf 第一个字符“s”表示字符串类型的第一个参数 最后一个字符“f”表示格式 fprintf 第一个字符“f”表示字符串类型的第一个参数 最后一个字符“f”表示格式 printf 以“”开头,没有第一个参数 最后一个字符“f”表示格式 我认为第一个字母代表第一个参数,但是vsprintf和printf否认了这一说法。最后一个字母似乎表示它采用了某种格式。更不用说U's、N's、C's、V's和F's的所有其他用途

一篇文章解释了我们许多人多年来所知道的差异。我的假设是:

  • sprintf
    • 第一个字符“s”表示字符串类型的第一个参数
    • 最后一个字符“f”表示格式
  • fprintf
    • 第一个字符“f”表示字符串类型的第一个参数
    • 最后一个字符“f”表示格式
  • printf
    • 以“”开头,没有第一个参数
    • 最后一个字符“f”表示格式
我认为第一个字母代表第一个参数,但是
vsprintf
printf
否认了这一说法。最后一个字母似乎表示它采用了某种格式。更不用说U's、N's、C's、V's和F's的所有其他用途了

如果有人能给
stdio
中所有这些约定背后的理性人解释来源,那将是令人惊讶的

奖金-
获得对姓名删除的额外尊重。

前缀:

  • N
    -提供了一个安全网,用于限制可安全写入/读取的字符数

  • V
    -您正在使用变量参数列表。如果您想编写模拟printf的函数,这非常有用

  • S
    -您正在读取/写入字符串

  • F
    -您正在读取/写入文件

  • p
    -您正在读取进程的输出

  • None
    -printf和scanf没有前缀,因为它们只是从标准输入/输出读取/写入-在UNIX世界中,它们不过是文件

  • 后缀:

  • F
    -您正在按照格式化输出进行读写(您说您将使用格式字符串,后跟变量参数)

  • C
    -一次处理一个字符

  • S
    -您处理的是字符串(在到达下一个空格字符之前,数量几乎总是如此)

  • W
    -您正在处理单词(不要将其与英语单词混淆,单词仅表示大小(int))


  • 前缀:

  • N
    -提供了一个安全网,用于限制可安全写入/读取的字符数

  • V
    -您正在使用变量参数列表。如果您想编写模拟printf的函数,这非常有用

  • S
    -您正在读取/写入字符串

  • F
    -您正在读取/写入文件

  • p
    -您正在读取进程的输出

  • None
    -printf和scanf没有前缀,因为它们只是从标准输入/输出读取/写入-在UNIX世界中,它们不过是文件

  • 后缀:

  • F
    -您正在按照格式化输出进行读写(您说您将使用格式字符串,后跟变量参数)

  • C
    -一次处理一个字符

  • S
    -您处理的是字符串(在到达下一个空格字符之前,数量几乎总是如此)

  • W
    -您正在处理单词(不要将其与英语单词混淆,单词仅表示大小(int))


  • 你需要看的不是第一个字符,而是前缀

    “原始”功能,
    printf
    用于格式化打印。然后可以将一个或多个前缀添加到
    printf
    名称:

    • f
      :打印到
      文件
    • s
      :打印到字符串
    • v
      :使用
      va_列表打印
    • n
      :打印给定数量的字符
    • w
      :打印宽字符:
    这就给了我们:

    • printf
      :格式化打印到标准输出
    • fprintf
      :格式化打印到
      文件
    • sprintf
      :格式化打印为字符串
    • snprintf
      :格式化打印为具有给定字符数的字符串
    • vprintf
      :使用
      va_列表格式化打印到标准输出
    • vfprintf
      :使用
      va_列表
      格式化打印到
      文件
    • vsprintf
      :使用
      va_列表对字符串进行格式化打印
    • vsnprintf
      :使用
      va_list
      格式化打印到具有给定字符数的字符串
    • wprintf
      :将宽字符格式化打印到标准输出
    • fwprintf
      :将宽字符格式化打印到
      文件
    • swprintf
      :将宽字符格式化打印为字符串
    • vwprintf
      :使用
      va_列表将宽字符格式化打印到标准输出
    • vfwprintf
      :使用
      va_列表将宽字符格式化打印到
      文件
    • vswprintf
      :使用
      va_列表将宽字符格式化打印为字符串

    与其说是第一个字符,不如说是前缀

    “原始”功能,
    printf
    用于格式化打印。然后可以将一个或多个前缀添加到
    printf
    名称:

    • f
      :打印到
      文件
    • s
      :打印到字符串
    • v
      :使用
      va_列表打印
    • n
      :打印给定数量的字符