Restore ``user2.c'' to its original form. Notice that the header of the ``LOG2'' function gives the type of the result and the number and types of the arguments. Try some experiments:
printf(LOG2(5.));
somewhere. What happens when you compile it?
All of these experiments should show you that the compiler warns you when you pass arguments, or use results, in a way incompatible with the declaration of the function.
Hamlet Project