Qualcuno può dirmi qual è la differenza tra una funzione inline e una funzione inline statica?Differenza tra una funzione inline e una funzione inline statica
In quali casi, preferisco statico in linea su inline?
Sto facendo questa domanda perché ho una funzione inline per la quale sto affrontando problemi di compilazione durante il collegamento (relocation error:... symbol has been discarded with discarded section ...
). L'ho reso una funzione normale e ha funzionato. Ora alcuni dei miei anziani mi hanno detto di provare con la linea statica. Qui di seguito è la mia funzione:
inline void wizSendNotifier (const char* nn_name, bpDU* arg=0, int aspect = -1)
{
wizuiNotifier* notifier = ::wizNtrKit.getNotifier (nn_name);
notifier->notify (arg, aspect);
}
e questo non all'interno di una classe. Questo è all'interno di un file di intestazione!
Immagino che la chiamata a una funzione statica debba essere eseguita solo nella TU specifica in cui è definita.
Dato che la mia funzione si trova in un file di intestazione e se la faccio statica, sarà sempre possibile che includo il file di intestazione utilizzato dalla funzione statica in quell'unità di traduzione?
Questa funzione è all'interno di una classe? Si prega di inviare anche la sua dichiarazione. – anatolyg
è ':: wizNtrKit' un oggetto statico? qual è il suo collegamento? – Walter
Inoltre, dove appare la funzione? File di intestazione, file sorgente? Quanti file sorgente lo includono? –