| if you're writing the print statement, | you *know* which function you're in.
But why should I have to type the particular value several times? What if I change the name of the function later? Isn't that what variables are for? | it's only useful inside macros, | which are mostly deprecated. Nah, even simple function calls can use it. check(a, b, c, __func__); It's true, it would be nice to find out the caller from within check(), but this achieves most of the utility with a much simpler implementation.
