Formato di un nome decorato di C++
Il nome decorato di una funzione C++ contiene le seguenti informazioni:
Il nome della funzione.
La classe di cui la funzione è membro, se si tratta di una funzione membro. Può includere la classe in cui è racchiusa la classe della funzione e così via.
Lo spazio dei nomi a cui appartiene la funzione, se fa parte di uno spazio dei nomi.
I tipi di parametro della funzione.
La convenzione di chiamata.
Il tipo restituito dalla funzione.
I nomi della funzione e della classe sono codificati nel nome decorato. La parte restante del nome decorato è un codice che ha un significato interno solo per il compilatore e il linker. Nella tabella riportata di seguito sono illustrati alcuni esempi di nomi C++ non decorati e decorati.
Nome non decorato |
Nome decorato |
---|---|
int a(char){int i=3;return i;}; |
?a@@YAHD@Z |
void __stdcall b::c(float){}; |
?c@b@@AAGXM@Z |