Is it undefined behavior to redefine a standard name?
At least one reason why it’s UB is that string.h can introduce macros. For internal implementation reasons, those macros might have been written on the assumption that strcmp is the “real” strcmp function. If you define strcmp to be something else and then use those macros, strcmp will expand to my_strcmp in the macros, with … Read more