Typically, library header files in C (e.g. stdio.h) contain not only declaration of functions and macro definitions but they contain definition of user defined data types (e.g. struct, union etc), typedefs and definition of global variables as well. So if we include the same header file more than once in a C program, it would result in compile issue because re-definition of many of the constructs of the header file would happen. So it means the following program will give compile error.
Explanation: It’s okay to include library header files multiple times in a program. But actually the content of the header file is included only once. The way it’s achieved is due to usage of “#ifndef“, “#define” and “#endif”. That’s why it’s recommended to use these preprocesor macros even in user defined header files. For an example and usage of this, please check out the “Discuss it” of this question.
Quiz of this Question