Although I have always known the functions of these three things:
The **#ifndef** in the header file is a very important mechanism. For example, if you have two C files and both of them include the same header file. During compilation, these two C files need to be compiled together into one executable file, and thus problems arise—numerous declaration conflicts.
So it's better to place all the content of the header file between **#ifndef** and **#endif**. Regardless of whether your header file will be referenced by multiple files, you should always add this. The general format is as follows:
```c
#ifndef
#define
...... (code of the header file)
#endif
```
However, what I've never understood is: how should this **** be determined?!