Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C Struktur und Funktion

C-Struktur und Funktion

In diesem Lernprogramm lernen Sie, Strukturvariablen als Argumente an eine Funktion zu übergeben. Anhand von Beispielen lernen Sie, struct aus einer Funktion zurückzugeben.

Ähnlich wie bei Variablen eingebauter Typen können Sie auch Strukturvariablen an eine Funktion übergeben.


Strukturen an Funktionen übergeben

Wir empfehlen Ihnen, diese Tutorials zu lernen, bevor Sie lernen, wie man Strukturen an Funktionen übergibt.

So können Sie Strukturen an eine Funktion übergeben

#include <stdio.h>
struct student {
   char name[50];
   int age;
};

// function prototype
void display(struct student s);

int main() {
   struct student s1;

   printf("Enter name: ");

   // read string input from the user until \n is entered
   // \n is discarded
   scanf("%[^\n]%*c", s1.name);

   printf("Enter age: ");
   scanf("%d", &s1.age);

   display(s1); // passing struct as an argument

   return 0;
}

void display(struct student s) {
   printf("\nDisplaying information\n");
   printf("Name: %s", s.name);
   printf("\nAge: %d", s.age);
}

Ausgabe

Enter name: Bond
Enter age: 13

Displaying information
Name: Bond
Age: 13  

Hier eine Strukturvariable s1 vom Typ struct student geschaffen. Die Variable wird an display() übergeben Funktion mit display(s1); Erklärung.


Struct von einer Funktion zurückgeben

So können Sie die Struktur einer Funktion zurückgeben:

#include <stdio.h>
struct student
{
    char name[50];
    int age;
};

// function prototype
struct student getInformation();

int main()
{
    struct student s;

    s = getInformation();

    printf("\nDisplaying information\n");
    printf("Name: %s", s.name);
    printf("\nRoll: %d", s.age);
    
    return 0;
}
struct student getInformation() 
{
  struct student s1;

  printf("Enter name: ");
  scanf ("%[^\n]%*c", s1.name);

  printf("Enter age: ");
  scanf("%d", &s1.age);
  
  return s1;
}	

Hier die getInformation() Die Funktion wird mit s = getInformation(); aufgerufen Aussage. Die Funktion gibt eine Struktur vom Typ struct student zurück . Die zurückgegebene Struktur wird aus dem main() angezeigt Funktion.

Beachten Sie, dass der Rückgabetyp getInformation() ist ist auch struct student .


Struct als Referenz übergeben

Sie können Strukturen auch per Referenz übergeben (ähnlich wie Sie Variablen des eingebauten Typs per Referenz übergeben). Wir empfehlen Ihnen, das Referenz-Tutorial zu lesen, bevor Sie fortfahren.

Bei der Referenzübergabe werden die Speicheradressen von Strukturvariablen an die Funktion übergeben.

#include <stdio.h>
typedef struct Complex
{
    float real;
    float imag;
} complex;

void addNumbers(complex c1, complex c2, complex *result); 

int main()
{
    complex c1, c2, result;

    printf("For first number,\n");
    printf("Enter real part: ");
    scanf("%f", &c1.real);
    printf("Enter imaginary part: ");
    scanf("%f", &c1.imag);

    printf("For second number, \n");
    printf("Enter real part: ");
    scanf("%f", &c2.real);
    printf("Enter imaginary part: ");
    scanf("%f", &c2.imag);

    addNumbers(c1, c2, &result); 
    printf("\nresult.real = %.1f\n", result.real);
    printf("result.imag = %.1f", result.imag);
    
    return 0;
}
void addNumbers(complex c1, complex c2, complex *result) 
{
     result->real = c1.real + c2.real;
     result->imag = c1.imag + c2.imag; 
}

Ausgabe

For first number,
Enter real part:  1.1
Enter imaginary part:  -2.4
For second number, 
Enter real part:  3.4
Enter imaginary part:  -3.2

result.real = 4.5
result.imag = -5.6  

Im obigen Programm drei Strukturvariablen c1 , c2 und die Adresse von Ergebnis wird an addNumbers() übergeben Funktion. Hier Ergebnis wird als Referenz übergeben.

Wenn das Ergebnis Variable innerhalb des addNumbers() geändert wird, das Ergebnis Variable innerhalb des main() Funktion wird ebenfalls entsprechend geändert.


C Sprache

  1. C#-Struktur
  2. C++ Friend-Funktion und Friend-Klassen
  3. C-Struktur
  4. C-Strukturen und Zeiger
  5. C - Programmstruktur
  6. C - Datentypen
  7. C - Konstanten und Literale
  8. C - Funktionen
  9. C++-Überladung (Operator und Funktion)
  10. Elektrische Transformatoren:Funktion, Struktur und mehr