Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是;f";代表C标准库函数名?_C_Naming_Libc - Fatal编程技术网

什么是;f";代表C标准库函数名?

什么是;f";代表C标准库函数名?,c,naming,libc,C,Naming,Libc,在C标准库函数的名称中,f代表什么?我注意到很多函数的名称中都有一个f,这对我来说没有什么意义 例如:fgets,fopen,printf,scanf,sqrtf等等。前导的f代表文件,尾随的代表格式化的; 例如,sscanf用于扫描s字符串,查找由格式指定的模式中的值,而fprintf将格式化文本打印到文件中 编辑:哦,还有来自math.h的数学函数,它将具有类型后缀,如atanf,用于计算浮点值的arcustangens。我的印象是,对于fgets和fopen而言,f代表文件 对于print

在C标准库函数的名称中,
f
代表什么?我注意到很多函数的名称中都有一个
f
,这对我来说没有什么意义


例如:
fgets
fopen
printf
scanf
sqrtf
等等。

前导的
f
代表
文件
,尾随的代表
格式化的
;
例如,
sscanf
用于扫描
s
字符串,查找由格式指定的模式中的值,而
fprintf
将格式化文本打印到文件中


编辑:哦,还有来自
math.h
的数学函数,它将具有类型后缀,如
atanf
,用于计算浮点值的arcustangens。

我的印象是,对于
fgets
fopen
而言,
f
代表文件


对于
printf
scanf
我认为
f
代表格式化。这至少部分得到了支持。

前导f指的是函数操作的类型:

  • fgets
    :在
    文件*
    句柄上使用
    get
    ,而不仅仅是
    stdin
  • fopen
    :打开一个文件,并将其作为
    文件*
    返回(而不是原始
    打开时所使用的文件描述符)
尾随的f表示它使用格式字符串:

  • printf
    :根据格式说明符打印
  • scanf
    :根据格式读入
结合起来,你会得到如下结果:

  • fprintf
    :根据格式说明符打印到特定的
    文件*

当您考虑诸如<代码>数学> h >代码>函数时,尾随f指定特定函数操作在类型<代码>浮点< /代码>的操作数上,如:

  • powf
    :取
    float
    s的指数
  • powl
    :取长双精度的指数

    • 你的问题一般来说太笼统了,但我可以解释几个例子

      • ,,,,-“f”代表“文件”。这些函数接受或返回一个
        文件*
        指针,而不是POSIX函数那样的文件号
      • ,…-“f”代表“格式化”。这些函数接受格式化字符串
      • ,-这是上述两者的组合
      • ,…-“f”代表
        浮点
        (区别于
        双精度
        备选方案)。请注意,这与在
        1.5f
        中用
        f
        作为浮点文本的后缀非常吻合
      • 最后,作为重复数据消除程序,有一些名称,例如,或(“设置缓冲区”),其中“f”仅显示为自然语言字符

      < C++ > C++中的重载是编译器在编译器中自动将这些后缀添加到生成的符号中的函数。来自
      stdio
      库的离子,在
      fread
      fprintf
      fwrite
      等函数中前面的
      f
      代表“文件”。在
      printf
      scanf
      等函数末尾的
      f
      代表“格式”。因此printf是格式化打印,这意味着您可以使用里面有
      %d
      %s


      在数学函数中,
      f
      的后缀通常意味着
      float

      前导的
      f
      和尾随的
      f
      都有一个含义,但都是不相关的。前两个:“文件”。后两个:“格式”或“格式化”。
      fscanf()
      fprintf()
      :两者都有。如果它是前缀,那么它通常是“文件”例如,
      (f)ile(open)
      。如果f是后缀,那么它通常是“格式”。
      (print)(f)ormat
      (f)ile(print)(f)ormat
      的另一个用法是用于
      float
      ,如
      ceilf()
      round()
      ,…在
      math.h
      函数中,也有表示返回类型的后缀。像这样的缩写,以及类似的
      s
      sprintf
      sscanf
      ,和
      str
      前缀比全名更受欢迎,因为最初。不要忘了
      math
      函数eh:-),有时它是只是一个前导的f,如
      free
      ,或者是一个尾随的f,如
      sizeof
      。我认为@Deduplicator的评论应该是answer@Deduplicator我认为在
      free
      sizeof
      的情况下,f只是一个单词的一部分:)那么fabsf呢?其中有两个f,文件没有意义。