Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

C Estructura y Función

C Estructura y Función

En este tutorial, aprenderá a pasar variables de estructura como argumentos a una función. Aprenderá a devolver una estructura desde una función con la ayuda de ejemplos.

Al igual que las variables de tipos integrados, también puede pasar variables de estructura a una función.


Pasar estructuras a funciones

Le recomendamos que aprenda estos tutoriales antes de aprender a pasar estructuras a funciones.

Así es como puedes pasar estructuras a una función

#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);
}

Salida

Enter name: Bond
Enter age: 13

Displaying information
Name: Bond
Age: 13  

Aquí, una variable de estructura s1 de tipo struct student es creado. La variable se pasa al display() función usando display(s1); declaración.


Retornar estructura desde una función

Así es como puede devolver la estructura de una función:

#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;
}	

Aquí, el getInformation() la función se llama usando s = getInformation(); declaración. La función devuelve una estructura de tipo struct student . La estructura devuelta se muestra desde el main() función.

Tenga en cuenta que el tipo de retorno de getInformation() también es struct student .


Pasar estructura por referencia

También puede pasar estructuras por referencia (de manera similar a como pasa variables de tipo incorporado por referencia). Le sugerimos que lea el tutorial de paso por referencia antes de continuar.

Durante el paso por referencia, las direcciones de memoria de las variables de estructura se pasan a la función.

#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; 
}

Salida

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  

En el programa anterior, tres variables de estructura c1 , c2 y la dirección de resultado se pasa al addNumbers() función. Aquí, resultado se pasa por referencia.

Cuando el resultado variable dentro del addNumbers() se altera, el resultado variable dentro del main() la función también se modifica en consecuencia.


Lenguaje C

  1. estructura C#
  2. Función amiga de C++ y Clases amigas
  3. estructura C
  4. Estructuras C y punteros
  5. C - Estructura del programa
  6. C - Tipos de datos
  7. C - Constantes y Literales
  8. C - Funciones
  9. Sobrecarga de C++ (operador y función)
  10. Transformadores eléctricos:función, estructura y más
  11. 15 partes diferentes de la máquina de torno y su función