Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C-functies: Structuur, declaratie, aanroep en argumenten

Wat is een functie?

functie is een groep statements die een specifieke taak uitvoert. Elk C-programma heeft minstens main(). Functies maken code modulair, herbruikbaar en leesbaar.

Functiedefinitie

retourtype functienaam(parameterlijst) {
    // functiebody
}

Onderdelen

  • Retourtype – datatype van retourwaarde (void = geen retour)
  • Functienaam – identificator
  • Parameters – placeholders voor argumenten (optioneel)
  • Body – statements tussen accolades

Voorbeeld: max()

int max(int num1, int num2) {
    int result;
    if (num1 > num2)
        result = num1;
    else
        result = num2;
    return result;
}

Functiedeclaratie (prototype)

Informeert compiler over naam, retourtype, parameters. Vereist als functie na aanroep gedefinieerd wordt of in ander bestand staat.

int max(int num1, int num2);

Parameternamen optioneel: int max(int, int);

Functie aanroepen

#include <stdio.h>

int max(int, int);  // declaratie

int main() {
    int a = 100, b = 200;
    int ret = max(a, b);  // aanroep met argumenten
    printf("Max: %d\n", ret);
    return 0;
}

int max(int num1, int num2) {  // definitie
    return (num1 > num2) ? num1 : num2;
}

Functie-argumenten: Call by Value vs Call by Reference

Call by value (standaard)

void swap(int a, int b) {
    int temp = a; a = b; b = temp;
}
// originele variabelen ongewijzigd

Call by reference (via pointers)

void swap(int *a, int *b) {
    int temp = *a; *a = *b; *b = temp;
}

int main() {
    int x = 10, y = 20;
    swap(&x, &y);  // adressen doorgeven
    // x=20, y=10
}

Standaardbibliotheekfuncties

stdio.h: printf, scanf, fopen...
string.h: strcpy, strlen, strcmp...
stdlib.h: malloc, free, rand...
math.h: sqrt, sin, pow...

Recursie

Functie roept zichzelf aan. Basisgeval (base case) voorkomt oneindige recursie.

int factorial(int n) {
    if (n <= 1) return 1;
    return n * factorial(n - 1);
}

C Taal

  1. Vier bewaarde patronen voor gebruiksgedefinieerde functies in C
  2. Hoe je 1D- en 2D-arrays doorgeeft aan functies in C – Een praktische gids
  3. C Standaardbibliotheek-functies onder de knie krijgen: Een praktische gids
  4. Efficiënt geheugengebruik met C-bitvelden
  5. Bestands-I/O in C: Bestanden aanmaken, openen, lezen en schrijven
  6. Variabele Argumenten in C: Een Praktische Gids
  7. Polymorfisme in C++ Begrijpen: Een Praktische Gids
  8. C# Methodes: Definiëren, Aanroepen en Gebruiken van Functies
  9. Verilog-functies beheersen voor efficiënt RTL-ontwerp
  10. MATLAB Functies: Definitie, Werkruimte, In- en Outputs
  11. Python lambda-functies beheersen: praktische voorbeelden & best practices
MethodeBeschrijvingEffect op origineel
Call by value (standaard)Kopieert waarde naar parameterGeen wijziging
Call by referenceKopieert adres (pointer) naar parameterWijziging zichtbaar