Funktioner i C ( och i de flesta andra programmeringsspråk ) är en integrerad del utveckla och upprätthålla någon form av komplex kodning projektet . Funktioner Namn block av kod som utför en viss uppgift , som kan kallas och används genom att referera till funktionens namn . I C -programmering , kan funktionerna köra traditionellt eller som inline -funktioner , beroende på hur programmeraren definierar funktionen . Att förstå statiska inline -funktioner , bör programmeraren förstår hur inline funktioner jämför med vanliga funktioner . Funktion Definitioner
När en programmerare definierar en funktion , gör hon det för att definiera ett block av kod på ett ställe . Ofta är koden i funktionen används upprepade gånger , eller utför en komplicerad uppgift att programmeraren kanske vill modifiera eller ändra i framtiden . Programmeraren kan sedan referera till den funktionen i hela programmet med hjälp av dess namn . Detta gör det möjligt för återanvändning av kod i samma program eller över flera program . Denna Följande exempel visar en grundläggande funktion
int myFunc ( ) katalog
{
retur 2 +3 ,
} .
Inline funktioner
När funktionerna kallas hela program , måste emellertid speciell kod skrivas av kompilatorn för att referera funktionen . Detta beror på att funktionen kod finns i minnet på en viss plats , separat från andra köra kod . I grund och botten innebär detta att den verkställande koden måste flytta till en annan minnesplats , köra koden för funktionen , och sedan återgå till den ursprungliga koden . För att optimera hastigheten , innehåller C " inline " nyckelordet , som berättar för kompilatorn att kopiera koden för funktionen i den verkställande koden när funktionen namn ropas , snarare än att få funktionen kod från minnet .
Inline statisk funktioner
En " statisk " funktion gör att kompilatorn att andra programfiler inte kan se eller komma åt den funktionen . Endast andra funktioner från samma fil kan visa en statisk funktion . Därför , för att deklarera en funktion endast lokalt till filen programmeraren definierar det , och optimerad för hastighet genom att existera som en inline -funktion , skulle en programmerare använder " statiska " och " inline " sökord för att definiera funktioner , som i detta exempel .
statisk inline void myFunc ( ) {
/* kod * /
Exempel
Använda statiska inline -funktioner gör att flera C-filer för att använda samma funktion namn i hela flera filer . Till exempel anser dessa två funktionstangenter exempel . Den första funktionen finns i " one.h " och den andra i " two.h. " Eftersom funktionerna är statiska , de kommer i konflikt inte när funktionen anropas i en fil eller en annan . Dessutom kommer kompilatorn placera koden för varje funktion direkt i koden verkställer det , snarare än att referera till en funktion från minnet .
//Från one.h
statisk inline void myFunc ( ) {
/* kod * /
}
//från two.h
statisk inline void myFunc ( ) {
/* kod * /
}