extern inline
-=-=-=-=-=-=-=-
If debugging is the process of removing bugs, then programming must
be the process of putting them in.
-- Dijkstra
konstrukce Extern inline konstrukce umožňuje udělat rychlé
náhražky knihovních funkcí. Pokud je zaplá optimalizace a překladač
narazí na funkci deklarovanou jako extern inline, všechny další
volání se inlinují. Pokud je ale optimalizace vyplá, funkce se
ignoruje a volá se standardní. Proto do headerů můžete sepsat svoje
nejoblíbenější funkce, které by měly být rychlé a takový header pak
volat všude, kde je třeba. Taková běžná extern inline funkce je:
extern inline void
outportb (unsigned short _port, unsigned char _data)
{
asm volatile ("outb %1, %0"
:
: "d" (_port),
"a" (_data));
}
Samozřejmě, že jde extern inline funkce používat i pro
standardní C kód, nejenom asm.
výheň