Citat:
Ursprungligen postat av
masterflex22
En headerfil kan mycket väl innehålla funktions definitionen likaväl som en .c/.cpp fil. Det finns inget magiskt med header filer. Man inkluderar kod, punkt.
Det man kan får problem med om man definierar funktioner i header filer är att det blir multipla definitioner om man inkluderar headern i fler än en .c/.cpp fil. Och då får man vanligtvis ett error av länkaren.
Definierar man däremot funktionen som "inline" har man inte några sådana problem, dock dupliceras då koden in överallt där du anropar funktionen.
Man kan skriva spagettikod om man vill i c men vill man vara lite strukturerad så blandar man inte prototyper och definitioner i samma fil. Det blir oftast problem vid kompileringen som du själv säger. Nej inline innebär inte att koden dupliceras överallt det avgör kompilatorn.