This macro tests if the C complier supports the C9X standard
The new C9X standard for the C language stipulates that the
identifier __func__ shall be implictly declared by the compiler
as if, immediately following the opening brace of each function
definition, the declaration
static const char __func__ = "function-name";
appeared, where function-name is the name of the function where
the __func__ identifier is used.