Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

C Estrutura e Função

Estrutura e função C


Neste tutorial, você aprenderá a passar variáveis ​​de estrutura como argumentos para uma função. Você aprenderá a retornar struct de uma função com a ajuda de exemplos.

Semelhante a variáveis ​​de tipos internos, você também pode passar variáveis ​​de estrutura para uma função.

Passando estruturas para funções


Recomendamos que você aprenda esses tutoriais antes de aprender como passar estruturas para funções.

Veja como você pode passar estruturas para uma função
#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);
}

Saída
Enter name: Bond
Enter age: 13

Displaying information
Name: Bond
Age: 13  

Aqui, uma variável struct s1 do tipo struct student é criado. A variável é passada para o display() função usando display(s1); declaração.

Retorna a estrutura de uma função




Veja como você pode retornar a estrutura de uma função:
#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;
}	

Aqui, o getInformation() função é chamada usando s = getInformation(); declaração. A função retorna uma estrutura do tipo struct student . A estrutura retornada é exibida a partir do main() função.

Observe que, o tipo de retorno de getInformation() também é struct student .

Passando struct por referência


Você também pode passar structs por referência (de maneira semelhante, como você passa variáveis ​​do tipo interno por referência). Sugerimos que você leia o tutorial de passagem por referência antes de prosseguir.

Durante a passagem por referência, os endereços de memória das variáveis ​​de estrutura são passados ​​para a função.
#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; 
}

Saída
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  

No programa acima, três variáveis ​​de estrutura c1 , c2 e o endereço de resultado é passado para o addNumbers() função. Aqui, resultado é passado por referência.

Quando o resultado variável dentro do addNumbers() for alterado, o resultado variável dentro do main() função também é alterada em conformidade.

Linguagem C

  1. Estrutura C#
  2. Função de amigo C++ e classes de amigo
  3. Estrutura C
  4. Estruturas e ponteiros C
  5. C - Estrutura do Programa
  6. C - Tipos de dados
  7. C - Constantes e Literais
  8. C - Funções
  9. Sobrecarga de C++ (operador e função)
  10. Transformadores elétricos:função, estrutura e mais