Pergunta em estruturas (langauge C)?

E

Esfinge

Guest
Salam,

Enquanto estou lendo sobre Texto Interfaces i faces dessa estrutura

Código:

typedef struct _selection

(

char prompt [MAX_PROMPT_LEN];

int (função *) (int);

fn_arg int;

SELEÇÃO)
 
Isso é um ponteiro para uma função que recebe um int como argumento.

Eu suponho que aponta para a rotina que deve lidar com essa entrada de seleção específica.

/ Bingo

 
ter ponteiros para funções é muito útil na OS .. onde você pode executar o código dinâmicamente youd criar uma matriz de funções de ponteiro e chamá-los todos com um loop .. elegante e muito pequeno código

 
você pode fazer muitas opções de função para função que para muitos ponteiro.
Assim como C função de sobrecarga.

 
É um ponteiro para uma função ...olha este exemplo:

Código:/ / Seu typedef struct

typedef struct _selection

(

char prompt [MAX_PROMPT_LEN];

int (função *) (int);

fn_arg int;

SELEÇÃO);mySel seleção;/ Func / vários com valor de retorno mesmo e passar parâmetros

/ / Como "ponteiro para uma função"int teste1 (int a)

(

...

...

)int foo2 (int a)

(

...

...

)int foo3 (int a)

(

...

...

)/ / Duas funções que fazem a mesma coisavoid Func (int val)

(for (int i = 0; i <1000; i ) (

switch val () (

case 1:

foo1 (val);

break;

case 2:

foo2 (val);

break;

case 3:

foo3 (val);

break;

)

)

)void BetterFunc (val int)

(

switch val () (

case 1:

mySel.function = foo1;

break;

case 2:

mySel.function = foo2;

break;

case 3:

mySel.function = foo3;

break;

)for (int i = 0; i <1000; i )

mySel.function (val);

)
 

Welcome to EDABoard.com

Sponsor

Back
Top