sexta-feira, 4 de setembro de 2015

Estruturas - retorno de uma função

Quando queremos reunir várias variáveis de tipos
diferentes dentro de uma mesma área,
utilizamos as estruturas.
As variáveis declaradas dentro de uma estrutura
são consideradas como membros da estrutura,
e podem ser acessadas por nomes e de uma forma individual.
Provavelmente você já está acostumado a fazer
retorno de variáveis de funções, más o C,
vai muito além, se o seu programa chegar 
a um nível mais avançado,
talvez seja necessário fazer outros tipos de retorno,
como por exemplo retornar estruturas,
e isto é perfeitamente possível,
assim como também ponteiros e outras variáveis
podem ser retornados de uma função.
Neste caso, não podemos esquecer que a variável
que recebe o retorno tem de ser 
obrigatoriamente do mesmo tipo.
Neste código trago um claro exemplo
de retorno de estruturas acompanhe:

Veja abaixo uma imagem do programa em execução:




Veja abaixo o código do programa:



#include <stdio.h>
#include <conio.h>
#define TAM 9
struct vet_or {
     int a;
};
typedef struct retorno {
     struct vet_or ret;
} Ret_orn;
Ret_orn Vetor_struct ( Ret_orn ve_t [ TAM ] ) {
     Ret_orn str_uct;
     int i;
     textcolor ( LIGHTBLUE );
     gotoxy ( 25 , 11 );
     printf ( "Imprimindo abaixo o vetor de estrutura" );
     textcolor ( LIGHTRED );
     gotoxy ( 32 , 13 );
     for ( i = 0; i < 9 ; i++ ) {
         printf ( " %d " , ve_t [ i ].ret.a );
     }
     return str_uct;
}
void Janela5 ( ) {
     int lin, col;
     col = 0;
     for ( lin = 2; lin <= 24 ; lin++ )
         for ( col = 2; col <= 78 ; col++ ) {
              gotoxy ( col , lin );
              textbackground ( BLACK );
              printf ( " " );
         }
}
int main ( ) {
     system ( "title ESTRUTURAS - RETORNO DE UMA FUNÇÃO" );
     Ret_orn vet [ TAM ] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
     Ret_orn s;
     Janela5 ( );
     textcolor ( LIGHTRED );
     gotoxy ( 27 , 5 );
     printf ( "ESTRUTURAS - RETORNO DE UMA FUNÇÃO" );
     textcolor ( LIGHTBLUE );
     gotoxy ( 25 , 7 );
     printf ( "Programa desenvolvido por:" );
     textcolor ( LIGHTGREEN );
     gotoxy ( 52 , 7 );
     printf ( "Samuel Lima" );
     textcolor ( LIGHTMAGENTA );
     gotoxy ( 34 , 9 );
     printf ( "sa_sp10@hotmail.com" );
     s = Vetor_struct ( vet );
     textcolor ( LIGHTGREEN );
     gotoxy ( 36 , 23 );
     printf ( "MUITO OBRIGADO" );
     getche ( );
     return ( 0 );
}

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.