Co się stanie, jeśli moje zdefiniować funkcję w moim pliku .h jakCo dzieje się z zewnętrzną funkcją inline?
extern int returnaint(void);
, zdefiniować go w odpowiednim pliku .c jak
inline int returnaint(void) {
return 1;
}
i zawierać nagłówek w innym pliku .c i użytkowania funkcja? Kiedy kompiluję rzeczy osobno, tworząc plik obiektowy dla każdego pliku .c, a następnie łącząc je, włącza się funkcję podkreśloną lub co się dzieje?
Wiem, że kompilator może zignorować inline
, ale co jeśli go nie zignoruje w tym przypadku?
Następnie pojawi się błąd linkera. –
@ H2CO3, nigdy nie będzie błędu linkera. Jednostka kompilująca z definicją 'inline' również widzi deklarację' extern', więc symbol musi być emitowany. Proszę zobaczyć moją odpowiedź. –
@JensGustedt Dzięki, wznowione. –