¿Puedo sustituir __func__ en un nombre de identificador en una macro C?

Me gustaría escribir una macro C que tome esto:

int foo() {
  MY_MACRO
}

y lo expande a esto:

int foo() {
  _macro_var_foo++;
}

He encontrado que no puedo usar__func__, porque eso realmente no se expande en la macro; Es tratado por el preprocesador como una variable.

¿Hay alguna manera de hacer que esto funcione?

Respuestas a la pregunta(4)

Su respuesta a la pregunta