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

Eri*_*k W 18 c naming libc

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

例如:fgets,fopen,printf,scanf,sqrtf等.

5go*_*der 51

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

  • fgets,fopen,fclose,... -在"F"代表"文件".这些函数接受或返回FILE *指针,而不是POSIX函数所做的文件号.
  • printf,, scanf... - "f"代表"格式化".这些函数接受格式字符串.
  • fprintf,fscanf- 这是以上两者的组合.
  • sinf,, cosf... - "f"代表float(区别于double替代品).请注意,这非常适合使用fas中的后缀浮点文字1.5f.
  • 最后,正如Deduplicator 指出的那样,有一些名称,如free,floor或" setbuf(设置缓冲区"),其中"f"只是作为自然语言字符出现.

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

  • 有时它只是一个领先的f,比如"free",或者像`sizeof`这样的尾随f. (10认同)

ran*_*ame 8

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

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

尾随f表示它使用格式化字符串:

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

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

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

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

  • powf:取floats 的指数
  • powl:取long doubles 的指数


Mar*_*ler 6

一个领先的f代表file,一个尾随的代表formatted; 例如,sscanf用于扫描strings以获取格式指定的模式中的值,同时将fprintf格式化文本打印到文件中.

编辑:哦,然后有数学函数math.h将有类型后缀,如atanf计算arcustangens浮点值.

  • 不要忘记`math.h`函数呃:-) (2认同)