First, let's talk about the development history of the C standard library.
There are 15 standard header files in C89:
<Assert. h>, <ctype. h>, <errno. h>, <float. h>, <limits. h>, <locale. h>,
<Math. h>, <setjmp. h>, <signal. h>, <stdarg. h>, <stddef. h>,
<Stdio. h>, <stdlib. h>, <string. h>, and <time. h>
C95 adds three standard header files: <iso646.h>, <wchar. h>, and <wctype. h>
Six standard header files are added to C99:
<Complex. h>, <fenv. h>, <inttypes. h>, <stdbool. h>, <stdint. h>, <tgmath. h>
Five standard header files are added for C11:
<stdalign.h>、<stdatomic.h>、<stdnoreturn.h>、<threads.h>、<uchar.h>
For the main functions of header files, see here.
Up to now, 29 standard header files are available, and the library is becoming larger, so the function will naturally be enhanced. Although C is still being updated, it has always been a big challenge in programming languages,
However, many compilers do not fully support the new C standard. The gcc developed by GNU is not fully supported by c99.
In the end, the library commonly used in C development is the C89 standard library.
Maybe the features that the compiler does not support are just not needed? Or not? Many compiler manufacturers, based on the cost or
It is necessary to remove some less important features due to engineering application requirements. In fact, although free GCC does not fully support C99,
But it also supports 90% features (you can refer to here ).
Stop! I don't know whether it is about standards, compilers, or standard libraries. Something interesting:
Some people say that the standard library (C89)-that is, iso c-can be divided into three groups. Based on these three groups, there are three levels of programmers:
Qualified programmers: <ctype. h>, <stdio. h>, <stdlib. h>, and <string>
Skilled programmers: <assert. h>, <limits. h>, <stddef. h>, and <time. h>
Excellent programmers: <float. h>, <math. h>, <errno. h>, <locale. h>, <setjmp. h>,
<signal.h>、<stdarg.h>
Alas, it looks like you have to try again ......