If C project has multiple aliases by the keyword of “typedef”, it would cause compiling error of conflict. This could not be solved directly by the directive of”#ifndef” because it is not defined by the preprocessor directive, such as “#ifndef”. This problem has been found and discussed on the website, but it seems no good idea to solve. The type alias is often specified by the typedef in the header file, which may be generated by the developer or included from the third party, or the library of C/C++. But what is the root cause and how to avoid it?
Policy #1.
To find the conflict source and if it is specified by a macro, such as #ifdef or #ifndef, we can use the macro to do avoidance of conflict. But it is always suitable if the header file includes some more other definitions to cause more conflicts.
Policy #2
To reduce the header file to separate files, the type definition can be placed into one header file. This is not changed much about the project, and it is easy to modify and maintain.
Of course, it also implies that we should add Macro control if we use the typedef to define customized alias.