Witam,
czy definicje funkcji musza koniecznie byc w plikach naglowkowych zeby byly inline?
czy jesli funkcja ma tylko jedna instrukcje, to czy kompilator nie zrobi jej inline nawet jak nie bedzie jej definicji w pliku naglowkowym??
Witam,
czy definicje funkcji musza koniecznie byc w plikach naglowkowych zeby byly inline?
czy jesli funkcja ma tylko jedna instrukcje, to czy kompilator nie zrobi jej inline nawet jak nie bedzie jej definicji w pliku naglowkowym??
nie i nie. :P Inline będzie ta funcja, którą zadeklarujesz jako inline, lub jej definicję wpiszesz w ciele klasy (rzecz jasna ta druga opcja dot. tylko funkcji składowych)
Nie ma bata zeby kompilator zinlinowal funkcje ktora jest w innym pliku .cpp.
dasz sobie głowę i ręce uciąć? skad to wiesz?
pytam bo slyszalem, ze slowko inline jest jedynie sugestią dla kompilatora zeby funkcja byla inline, a nie wymuszeniem
przy wlaczonej optymalizacji zatem pasowaloby zeby kompilator krotkie funkcje, ktore sa uzyte raz czy dwa w programie i nie zadeklarowane jako inline zrobic inline
futrzaczek napisał(a)
dasz sobie głowę i ręce uciąć? skad to wiesz?
Ja sobie dam uciąć.
Nawet najmądrzejszy kompilator nie jest w stanie zrobić „inline” funkcji, której kodu nie zna. A jesli włączysz tylko nagłówek zawierający deklarację funkcji, to kodu nie ma tam jak nic.
coobba napisał(a)
Ja sobie dam uciąć.
Nawet najmądrzejszy kompilator nie jest w stanie zrobić „inline” funkcji, której kodu nie zna. A jesli włączysz tylko nagłówek zawierający deklarację funkcji, to kodu nie ma tam jak nic.
a istnieje moze jakies rozszerzenie w Visual C++ ktore by sprawilo, ze preprocesor zamienilby funkcje oznaczone tym tajemniczym rozszerzeniem na inline na tym etapie? tak, zeby to dla kompilatora nie stanowilo problemu?
nie podoba mi sie definiowanie funkcji w klasie i chcialby to jakos ominac :)
Autor dobrze myśli, jak dodasz inline, to niektóre kompilatory potraktuja to jako "normalną" funkcje inline. Niektóre, bo jak sam wspominałeś, jest to sugestia a nie wymuszenie.
A, ze tak zapytam, po cholere ci to?
Wolverine napisał(a)
A, ze tak zapytam, po cholere ci to?
napisalem, ze mi sie nie podoba definiowanie w plikach naglowkowych to raz
a dwa, czas zbudowania aplikacji po modyfikacji w plikach naglowkowych jest dluzszy niz po modyfikacji cpp
trzy podczas debugowania nie moge czesto podejrzec zawartosci zmiennych w funkcjach umieszczonych w plikach naglowkowych
ale skoro sie nie da to trudno
napisalem, ze mi sie nie podoba definiowanie w plikach naglowkowych
W plikach nagłówkowych umieszcza się przeważnie deklaracje funkcji .
Żródła w osobnych plikach [żródłowych] .
Definicje fun zawartych w klasie podobnie , nie są umieszczane w plikach nagłówkowych..
więc o co chodzi ?
dzejo napisał(a)
Definicje fun zawartych w klasie podobnie , nie są umieszczane w plikach nagłówkowych..
więc o co chodzi ?
Umieszcza sie jak sie chce zeby byly inline ...
koniec tematu bo widze, ze poki co kompilatory nie maja mozliwosci o ktore mi chodzi
Zle mnie chyba zrozumiales, po cholere ci funkcje inline? Bo jakos nie wierze zeby istnial jakis problem ktory by tego wymagal.
Wolverine napisał(a)
Zle mnie chyba zrozumiales, po cholere ci funkcje inline? Bo jakos nie wierze zeby istnial jakis problem ktory by tego wymagal.
wywołanie funkcji kosztuje troche czasu :) a inline sprawia, ze tego wywolania nie ma i tylko o to mi chodzi :)