C Användardefinierade funktioner

I denna handledning lär du dig att skapa användardefinierade funktioner i C-programmering med hjälp av ett exempel.

En funktion är ett kodblock som utför en specifik uppgift.

Med C kan du definiera funktioner efter ditt behov. Dessa funktioner är kända som användardefinierade funktioner. Till exempel:

Antag att du måste skapa en cirkel och färga den beroende på radie och färg. Du kan skapa två funktioner för att lösa detta problem:

  • createCircle() fungera
  • color() fungera

Exempel: Användardefinierad funktion

Här är ett exempel för att lägga till två heltal. För att utföra denna uppgift har vi skapat en användardefinierad addNumbers().

 #include int addNumbers(int a, int b); // function prototype int main() ( int n1,n2,sum; printf("Enters two numbers: "); scanf("%d %d",&n1,&n2); sum = addNumbers(n1, n2); // function call printf("sum = %d",sum); return 0; ) int addNumbers(int a, int b) // function definition ( int result; result = a+b; return result; // return statement ) 

Funktionsprototyp

En funktionsprototyp är helt enkelt deklarationen av en funktion som anger funktionens namn, parametrar och returtyp. Den innehåller inte funktionskropp.

En funktionsprototyp ger information till kompilatorn om att funktionen senare kan användas i programmet.

Syntax för funktionsprototyp

 returnType funktionsnamn (typ1 argument1, typ2 argument2,…);

I exemplet ovan int addNumbers(int a, int b);är funktionsprototypen som ger kompilatorn följande information:

  1. funktionens namn är addNumbers()
  2. återgångstyp för funktionen är int
  3. två argument av typen intskickas till funktionen

Funktionsprototypen behövs inte om den användardefinierade funktionen definieras före main()funktionen.

Ringa en funktion

Styrning av programmet överförs till den användardefinierade funktionen genom att ringa det.

Syntax för funktionsanrop

 funktionsnamn (argument1, argument2, …);

I exemplet ovan görs funktionsanropet med hjälp av addNumbers(n1, n2);uttalande inuti main()funktionen.

Funktionsdefinition

Funktionsdefinition innehåller kodblocket för att utföra en specifik uppgift. I vårt exempel lägger du till två nummer och returnerar det.

Syntax för funktionsdefinition

 returnType functionName (type1 argument1, type2 argument2,…) (// body of the function) 

När en funktion anropas överförs kontrollen av programmet till funktionsdefinitionen. Och kompilatorn börjar köra koderna inuti en funktions kropp.

Skicka argument till en funktion

I programmering hänvisar argument till variabeln som skickas till funktionen. I exemplet ovan passeras två variabler n1 och n2 under funktionsanropet.

Parametrarna a och b accepterar de skickade argumenten i funktionsdefinitionen. Dessa argument kallas formella parametrar för funktionen.

Typen av argument som skickas till en funktion och de formella parametrarna måste matcha, annars kommer kompilatorn att kasta ett fel.

Om n1 är av char-typ borde a också vara av char-typ. Om n2 är av flottortyp, bör variabel b också vara av flottortyp.

En funktion kan också anropas utan att skicka ett argument.

Returuttalande

Returuttalandet avslutar utförandet av en funktion och returnerar ett värde till den anropande funktionen. Programstyrningen överförs till anropsfunktionen efter returuttalandet.

I exemplet ovan returneras resultatvariabelns värde till huvudfunktionen. Sumvariabeln i main()funktionen tilldelas detta värde.

Syntax för returuttalande

 returnera (uttryck); 

Till exempel,

returnera a; returnera (a + b);

Typen av värde som returneras från funktionen och returtypen som anges i funktionsprototypen och funktionsdefinitionen måste matcha.

Besök den här sidan för att lära dig mer om att skicka argument och returnera värde från en funktion.

Intressanta artiklar...