Funksjoner i C (og i de fleste andre programmeringsspråk ) er integrert til å utvikle og opprettholde noen form for komplisert koding prosjektet. Funksjoner navn blokker av kode som utfører en bestemt oppgave , som kan kalles og brukes ved å referere funksjonens navn . I C-programmering , kan funksjoner utføres enten tradisjonelt eller som innebygde funksjoner, avhengig av hvordan programmereren definerer funksjonen . For å forstå statiske inline funksjoner , bør programmereren forstå hvordan inline funksjoner i forhold til vanlige funksjoner . Funksjon Definisjoner
Når en programmerer definerer en funksjon , gjør hun det for å definere en blokk med kode på ett sted . Ofte er koden i funksjonen som brukes flere ganger, eller utfører en kompleks oppgave som programmerer kan være lurt å endre eller endres i fremtiden . Programmereren kan deretter referanse som funksjon gjennom hele programmet ved å bruke sitt navn . Dette gir mulighet for gjenbruk av kode i samme program eller på tvers av flere programmer. Dette eksemplet viser en grunnleggende funksjon
int myfunc ( )
{
avkastning 2 +3 ,
} .
Inline funksjoner
Når funksjoner kalles hele programmer , må imidlertid spesiell kode skrives av kompilatoren for å referere til funksjonen. Dette er fordi funksjonskode ligger i minnet på et bestemt sted , adskilt fra andre gjennomføring kode . I utgangspunktet betyr dette at den utførende koden må flytte til et annet sted i minnet, kjøre koden for funksjonen , og deretter gå tilbake til den opprinnelige koden . For å optimalisere hastighet, inneholder C på " inline " søkeord som forteller kompilatoren å kopiere koden for funksjonen til den utførende kode når funksjonen navn kalles , heller enn å få funksjon koden fra minnet .
Inline Static Funksjoner
A " statisk "-funksjonen forteller kompilatoren at andre programfiler ikke kan se eller få tilgang til funksjonen . Bare andre funksjoner fra den samme filen kan se en statisk funksjon . Derfor, for å erklære en funksjon lokalt kun til filen programmereren definerer den i, og optimalisert for hastighet ved eksisterende som en innebygd funksjon, ville en programmerer bruker " statiske " og " inline " søkeord for å definere funksjoner , som i dette eksempelet .
statisk inline ugyldig minfunk ( ) {
/* kode * /
Eksempler
Bruke statiske inline -funksjoner gjør at flere C -filer til å bruke samme funksjon navn gjennom flere filer . For eksempel vurdere disse to funksjonstaster eksempler. Den første funksjonen eksisterer i " one.h " og den andre i " two.h. " Fordi funksjonene er statisk , vil de ikke komme i konflikt når funksjonen kalles i én fil eller en annen. Videre vil kompilatoren plassere koden for hver funksjon direkte inn koden utfører det , heller enn å referere til en funksjon fra minnet .
//Fra one.h
statisk inline void myfunc ( ) {
/* kode * /
}
//fra two.h
statisk inline void myfunc ( ) {
/* kode * /
}