“f”代表C标准库函数名称是什么?
f
代表C标准库函数的名称是什么? 我注意到很多函数的名字都有f
,这对我来说并没有多大意义。
例如: fgets
, fopen
, printf
, scanf
, sqrtf
等。
你的问题一般来说太笼统了,但我可以解释几个例子。
-
f gets
,f open
,f close
,…… – “f”代表“文件”。 这些函数接受或返回FILE *
指针,而不是像POSIX函数那样的文件号。 -
print f
,scan f
,… – “f”代表“格式化”。 这些函数接受格式字符串。 -
f print f
,f scan f
– 这是上述两者的组合。 -
sin f
,cos f
,… – “f”代表float
(区别于double
替代)。 请注意,这非常适合使用后缀浮点文字,其中f
为1.5f
。 - 最后,正如Deduplicator 指出的那样 ,有一些名称,如
free
,floor
或setbuf
(“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。
我的印象是fgets
和fopen
f
代表文件。
对于printf
和scanf
我相信f
代表格式化。 维基百科有关scanf的文章至少部分支持这一点。
在stdio
库的函数中, fread
, fprintf
, fwrite
等之前的f
代表’file’。 printf
和scanf
等printf
末尾的f
代表’format’。 因此printf是FORMATTED打印,这意味着你可以使用其中的谎言%d
和%s
。
在数学函数中, f
的后缀通常表示float
。