Funções dentro de Estruturas em C [RESOLVIDO]

1. Funções dentro de Estruturas em C [RESOLVIDO]

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 11/09/2014 - 21:40h

Galera , hoje estava olhando tutoriais de C++ , e um deles era sobre Classes.

Dai eu pensei, já que Classes é um pouco parecido com Estruturas , será que teria como criar funções nas estruturas (em C)?

Entao , é possivel ?

T+


  


2. MELHOR RESPOSTA

Uilian Ries
uilianries

(usa Linux Mint)

Enviado em 12/09/2014 - 08:41h

Claro, segue:


#include <stdio.h>

struct foo {
int value;
void (*bar) (int * value);
} ;

void get_value (int * value) {
printf ("Digite um valor: ");
scanf ("%d", value);
}

int main () {
struct foo f;
f.value = 0;

printf ("Valor (antes): %d\n", f.value);
f.bar= get_value;
f.bar(&f.value);
printf ("Valor (depois): %d\n", f.value);

return 0;
}


Perceba que a struct foo guarda uma assinatura de ponteiro de função (bar), que recebe um ponteiro de inteiro;
Seguido temos a função get_value, que trabalha com esta mesma assinatura. Ela recebe um valor pelo stdin e guarda na referência do parametro passado
No main passamos a referência dessa função para dentro da estruta, dessa maneira temos, "uma estruta com função"

3. Re: Funções dentro de Estruturas em C [RESOLVIDO]

Uilian Ries
uilianries

(usa Linux Mint)

Enviado em 11/09/2014 - 21:45h

Boa noite.

C não possui diretamente esta caracteristica.

Mas existe o artificio de utilizar ponteiro de função em estrutura


4. Re: Funções dentro de Estruturas em C [RESOLVIDO]

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 11/09/2014 - 21:53h

uilianries escreveu:

Boa noite.

C não possui diretamente esta caracteristica.

Mas existe o artificio de utilizar ponteiro de função em estrutura


Obrigado pela resposta :)

Poderia me dar um exemplo de como fazer esse 'artificio'

T+






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts