mczarny napisał(a):
z dotychczasowych nauk wiem, że w plikach typu .h umieszczamy deklarację funkcji a definicja siedzi w pliku .c
Więc przyszedł czas na kolejny etap nauki - otóż TAK, makra preprocesora, które przecież jak wiesz również mogą być zamieniane na żywy kod

przecież też umieszcza się gdzie ? w plikach nagłówkowych *.h .... czyli ? ... czyli zasadne i dopuszczalne jest umieszczanie definicji funkcji typu inline w plikach nagłówkowych
mczarny napisał(a):
Z tego co czytałem wcześniej samo "in line" kompilator może ale nie musi potraktować dosłownie.
Dobrze wyczytałeś ... z tą różnicą, że gdy użyjemy atrybutu __attribute__((always_inline)); to już kompilator nie ma wyboru a obowiązek.
mczarny napisał(a):
Sorki za wścibskość ale ja muszę wiedzieć dokładnie....
A co to za wścibskość ?

mnie takie pytania wręcz cieszą, bo to oznacza, że dokopujesz się do samego środka ! ... to jest zawsze moje marzenie i cel gdy piszę książkę, żeby ktoś zadawał pytania gdy czegoś nie rozumie na forum, zamiast siedzieć cicho kopać się z problemem a gdy się go nie rozwiąże to się poddawać ...
Odpowiadając więc, linię tę pozostawiłem zakomentowaną, żeby czytelnik widział jaka była pierwotna próba stworzenia tejże funkcji a na jakiej się skończyło
------------------------ [ Dodano po: 6 minutach ]A jeśli już mamy atrybut __always_inline to nie może to być funkcja udostępniana do innych modułów programu poprzez wystawienie jej deklaracji w pliku *.h z uwagi na to, że skoro MUSI być na siłę INLINE (a chyba wiesz co to znaczy) ... to znaczy że nie mogą się inne moduły do niej odwoływać poprzez SKOK do niej ... może ona działać jako inline w tym przypadku TYLKO w ramach modułu w którym zostanie stworzona
chyba, że .... no chyba, że jej definicję przeniesiemy do pliku nagłówkowego co jest w takim specyficznym wypadku dopuszczalne

_________________
zapraszam na blog:
http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj
Kurs EAGLE ] [ mój kanał YT TV
www.youtube.com/mirekk36 ]