Why inside myheader.h, we write:
#ifndef MYHEADER_H
#define MYHEADER_H
...
#endif
Since, Identifiers are case-sensitive (lowercase and uppercase letters are distinct), and every character is significant. How the above is valid? It should be
#ifndef myheader.h
#define myheader.h
...
#endif
What is the purpose of the underscores? What if I have 2 separate header files with names: MyHeader.h and myheader.h, How does the preprocessor distinguish between these?