Nel linguaggio C, __FUNCTION__
può essere utilizzato per ottenere il corrente nome della funzione. Ma se io definisco una funzione denominata un() e viene chiamato in B(), come di seguito:Come possiamo conoscere il nome della funzione del chiamante?
b()
{
a();
}
Ora, nel codice sorgente, ci sono un sacco di funzioni come B() che chiamano un (), per esempio c(), d(), e() ...
E 'possibile, all'interno di a(), aggiungere un codice per rilevare il nome della funzione che ha chiamato a()?
Ulteriori:
- Ci scusiamo per l'errore di battitura fuorviante. L'ho corretto
- Sto cercando di scoprire quale funzione chiama a() per scopi di debug. I non so come si fa nella stessa situazione?
- E il mio codice è in vxWorks, ma non sono sicuro che sia correlato a C99 o altro.
Non è sicuro. Ma [questo] (http://stackoverflow.com/questions/2154852/get-a-pointer-to-the-current-function-in-c-gcc) potrebbe esserti d'aiuto –
Perché vuoi farlo? E 'per scopi di debug? – fstamour
Se questo è solo per il debug, è possibile definire un come macro, in questo modo l'uso di '__func__' restituirà b, come si desidera. – Joe