Czy ktoś może mi powiedzieć, jaka jest różnica między funkcją inline a statyczną funkcją inline?Różnica między funkcją inline i statyczną funkcją inline
W jakich przypadkach wolałbym wstawiać statycznie w linii?
Zadaję to pytanie, ponieważ mam funkcję inline, dla których mam problemy kompilacji podczas łączenia (relocation error:... symbol has been discarded with discarded section ...
). Zrobiłem to normalną funkcją i zadziałało. Teraz niektórzy z moich seniorów powiedzieli, że próbuję z wbudowanym statycznym. Poniżej jest mój funkcji:
inline void wizSendNotifier (const char* nn_name, bpDU* arg=0, int aspect = -1)
{
wizuiNotifier* notifier = ::wizNtrKit.getNotifier (nn_name);
notifier->notify (arg, aspect);
}
a nie wewnątrz klasy. To jest w pliku nagłówkowym!
Przypuszczam, że wywołanie funkcji statycznej powinno być wykonywane tylko w określonej JT, gdzie jest ona zdefiniowana.
Ponieważ moja funkcja znajduje się w pliku nagłówkowym, a jeśli sprawię, że będzie statyczna, to czy kiedykolwiek uwzględnię ten plik nagłówkowy, czy funkcja statyczna może być użyta w tej jednostce tłumaczeniowej?
Czy ta funkcja jest dostępna w klasie? Proszę również zamieścić swoją deklarację. – anatolyg
to ':: wizNtrKit' jest statycznym obiektem? jaki jest jego związek? – Walter
Ponadto, gdzie pojawia się funkcja? Plik nagłówka, plik źródłowy? Ile zawiera plików źródłowych? –