“f”代表C标准库函数名称是什么?

f代表C标准库函数的名称是什么? 我注意到很多函数的名字都有f ,这对我来说并没有多大意义。

例如: fgetsfopenprintfscanfsqrtf等。

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

  • f getsf openf close ,…… – “f”代表“文件”。 这些函数接受或返回FILE *指针,而不是像POSIX函数那样的文件号。
  • print fscan f ,… – “f”代表“格式化”。 这些函数接受格式字符串。
  • f print ff scan f – 这是上述两者的组合。
  • sin fcos f ,… – “f”代表float (区别于double替代)。 请注意,这非常适合使用后缀浮点文字,其中f1.5f
  • 最后,正如Deduplicator 指出的那样 ,有一些名称,如freefloorsetbuf (“set buffer”),其中“f”只是作为自然语言字符出现。

使用单个字母预先或后缀名称来表示参数类型的传统是C中的必要条件,由于重载,C语言已经过时了。 实际上,C ++中的重载是由编译器通过名为mangling的进程自动将这些后缀再次添加到生成的符号中。

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

  • fgets :使用gets FILE *句柄而不仅仅是stdin
  • fopen :打开一个文件,并将其作为FILE *返回(而不是原始open文件描述符)

尾随f意味着它使用格式化字符串:

  • printf :根据格式说明符打印出来
  • scanf :根据格式读入

结合起来,你得到的结果如下:

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

当你考虑math.h函数之类的东西时,尾随f表示特定函数对float类型的操作数进行操作,如下所示:

  • powf :取float的指数
  • powl :取long double的指数

领先的f代表file ,尾随的代表formatted ; 例如, sscanf用于扫描s trings以获取格式指定的模式中的值,而fprintf格式化文本打印到文件中。

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

我的印象是fgetsfopen f代表文件。

对于printfscanf我相信f代表格式化。 维基百科有关scanf的文章至少部分支持这一点。

stdio库的函数中, freadfprintffwrite等之前的f代表’file’。 printfscanfprintf末尾的f代表’format’。 因此printf是FORMATTED打印,这意味着你可以使用其中的谎言%d%s

在数学函数中, f的后缀通常表示float