Gast
#688104
diese ausdrücke befinden sich unter anderem in der mmc.h von uli. was bedeutet diese "inline und extern"? inline void mmc_write_byte(U08); extern void mmc_read_block(U08 *,U08 *,U16); mfg
|
Anzeige
|
inline und extern.von ulis mmc.h
Gast
#688104
diese ausdrücke befinden sich unter anderem in der mmc.h von uli. was bedeutet diese "inline und extern"? inline void mmc_write_byte(U08); extern void mmc_read_block(U08 *,U08 *,U16); mfg roboterheld wrote: > diese ausdrücke befinden sich unter anderem in der mmc.h von uli. > was bedeutet diese "inline und extern"? > > inline void mmc_write_byte(U08); > extern void mmc_read_block(U08 *,U08 *,U16); > > mfg Das inline ist so etwas deplaziert, es sei denn in weiterer Folge wird in diesem File noch die Implementierung dieser Funktion angeführt. Inline bedeutet, dass der Compiler den tatsächlichen Funktions- aufruf durch den Inhalt der Funktion ersetzten soll. Bsp:
Durch das inline wird der Compiler angehalten, anstelle des Funtionsaufrufes die tatsächliche Funktion einzusetzen. In diesem Fall ist das gleichwertig wie wenn man geschrieben hätte
Man beachte: Damit der Compiler inlinen kann, muss er natürlich den Funktions- inhalt kennen. Wenn da nur stehen würde
dann wird sich der Compiler mit dem inlinen schwer tun :-) Zum extern: Der ist an dieser Stelle ziemlich unnötig und kennzeichnet lediglich, dass diese Funktion an einer anderen Stelle implementiert ist, das es sich hier also nicht um eine Definition einer Funktion sondern um eine Deklaration handelt. Der Compiler kann aber bei Funktionen auch so erkennen, dass es sich um eine Deklaration (einen sog. Protoypen) handelt und benötigt das extern nicht explizit. Es schadet allerdings auch nichts.
Gast
#688114
Inline bedeutet meiner Meinung nach, dass der Funktionsaufruf durch den Code der Funktion ersetzt wird. Das soll die Zeit für den Branch etc. sparen. Manche Compiler ignorieren dieses Schlüsselwort jedoch! Extern sagt dem Compiler, dass die Funtkion in einer anderen C Datei implementiert wurde. Schönen Gruss!
Gast
#688253
jup,danke. mfg Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|