In C, it is legal to declare a local variable with the name main inside the main function. This local variable shadows the outer function name. Thus, printf prints the integer value 7. It compile successfully and does not cause infinite recursion or compiler errors.