What does f
stand for in the name of C standard library functions? I have noticed that a lot of functions have an f
in their name, and this does not really make sense to me.
For example: fgets
, fopen
, printf
, scanf
, sqrtf
and so on.
The f in printf stands for formatted, its used for printing with formatted output.
Library functions are built-in functions that are grouped together and placed in a common location called library. Each function here performs a specific operation. We can use this library functions to get the pre-defined output. All C standard library functions are declared by using many header files.
printf is an abbreviation for "print formatted" scanf is an abbreviation for "scan formatted"
Your question in general is too general but I can explain a few examples.
fgets
, fopen
, fclose
, … — The ”f“ stands for “file”. These functions accept or return a FILE *
pointer as opposed to a file number as the POSIX functions do.printf
, scanf
, … — The ”f“ stands for “formatted”. These functions accept a format string.fprintf
, fscanf
— This is a combination of the above two.sinf
, cosf
, … — The “f” stands for float
(to distinguish from the double
alternatives). Note that this fits quite nicely with suffixing floating point literals with an f
as in 1.5f
.free
, floor
or setbuf
(“set buffer”) where the “f” simply appears as a natural language character.The tradition of pre- or suffixing names with single letters that indicate the type of the arguments is a necessity in C that has become obsolete in C++ thanks to overloading. Actually, overloading in C++ works by the compiler automatically adding those suffixes again under the hood to the generated symbols by a process called name mangling.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With