什么是f
C 标准库函数的名称代表什么?我注意到很多函数都有一个f
以他们的名义,这对我来说真的没有意义。
例如:fgets
, fopen
, printf
, scanf
, sqrtf
等等。
你的问题总体来说太笼统了,但我可以解释一些例子。
-
fgets http://en.cppreference.com/w/c/io/fgets, fopen http://en.cppreference.com/w/c/io/fopen, fclose http://en.cppreference.com/w/c/io/fclose, … — “f” 代表“文件”。这些函数接受或返回一个
FILE *
指针,而不是像 POSIX 函数那样的文件号。
-
printf http://en.cppreference.com/w/c/io/fprintf, scanf http://en.cppreference.com/w/c/io/fscanf, … — “f” 代表“格式化”。这些函数接受格式字符串。
-
fprintf http://en.cppreference.com/w/c/io/fprintf, fscanf http://en.cppreference.com/w/c/io/fscanf——这是以上两者的结合。
-
sinf http://en.cppreference.com/w/c/numeric/math/sin, cosf http://en.cppreference.com/w/c/numeric/math/cos, … — “f”代表
float
(以区别于double
备择方案)。请注意,这非常适合用后缀浮点文字f
as in 1.5f
.
- 最后,作为重复数据删除器指出 https://stackoverflow.com/questions/27949512/what-does-f-stand-for-in-c-standard-library-function-names#comment44294292_27949622,有一些名称,例如free http://en.cppreference.com/w/c/memory/free, floor http://en.cppreference.com/w/c/numeric/math/floor or setbuf http://en.cppreference.com/w/c/io/setbuf(“set buffer”)其中“f”仅显示为自然语言字符。
在 C 语言中,在名称前或后添加表示参数类型的单个字母的传统是必要的,但由于重载,这种传统在 C++ 中已经过时了。实际上,C++ 中的重载是通过编译器自动将这些后缀再次添加到生成的符号中来实现的,该过程称为名称修改 https://en.wikipedia.org/wiki/Name_mangling.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)