Why do the c libraries and language define _name and then typedef or pound define _name name?
问题 It seems that the C libraries and language has a lot of useless type names. For example, C has a built in type _Bool and there is a macro in stdbool.h , #define bool _Bool . Why didn't C just have bool built in instead of _Bool ? I found more examples in stdio.h and stdlib.h . Like this: # define WEXITSTATUS(status) __WEXITSTATUS (status) # define WTERMSIG(status) __WTERMSIG (status) # define WSTOPSIG(status) __WSTOPSIG (status) # define WIFEXITED(status) __WIFEXITED (status) # define