Vantagens em uso de ponteiro p/ função.

Programação C em geral

Moderadores: 51, guest2003

Vantagens em uso de ponteiro p/ função.

Mensagempor Red Neck Guy » 22 Dez 2016 10:09

Muitos dos que começam em C não conseguem visualizar utilidade para os ponteiros de função, então aproveitei que estou refatorando um código e vou mostrar aqui:

cpp code
void MCS_config_canal_moedeiro(char *titulo,unsigned char(*getter)(void),
void(*setter)(unsigned char)){
eTECLAS tecla;
unsigned char flag = getter();

if(flag)
flag = 255;

JOGO_exibeMensagem(titulo);

for(;TECLAS_getInatividadeTeclas();){

tecla = TECLADO_getch();
switch(tecla){
case TECLA_INC:
case TECLA_DEC: flag = ~flag;
break;
case TECLA_ENTER: setter(flag);
case TECLA_RETURN:
return;
}

if(flag)
DISPLAY_setterLiteral('O','N',' ',' ');
else
DISPLAY_setterLiteral('O','F','F',' ');
}

JOGO_exibeMensagem(" FEITO ");
}

void MCS_tela_config_2_reax(void){

MCS_config_canal_moedeiro(" NOTA 2 ",PARAMETROS_le_nota_2,PARAMETROS_grava_nota_2);
}

void MCS_tela_config_5_reax(void){

MCS_config_canal_moedeiro(" NOTA 5 ",PARAMETROS_le_nota_5,PARAMETROS_grava_nota_5);
}

void MCS_tela_config_10_reax(void){

MCS_config_canal_moedeiro(" NOTA 10 ",PARAMETROS_le_nota_10,PARAMETROS_grava_nota_10);
}

void MCS_tela_config_20_reax(void){

MCS_config_canal_moedeiro(" NOTA 20 ",PARAMETROS_le_nota_20,PARAMETROS_grava_nota_20);
}

void MCS_tela_config_50_reax(void){

MCS_config_canal_moedeiro(" NOTA 50 ",PARAMETROS_le_nota_50,PARAMETROS_grava_nota_50);
}

void MCS_tela_config_100_reax(void){

MCS_config_canal_moedeiro(" NOTA 100 ",PARAMETROS_le_nota_100,PARAMETROS_grava_nota_100);
}


Conseguem me entender agora quando digo que uma arquitetura que não permite implementar este tipo de solução é uma coisa que me deixa frustrado?
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Re: Vantagens em uso de ponteiro p/ função.

Mensagempor Rodrigo_P_A » 23 Dez 2016 10:42

Realmente, se souber usar, o C quase vira um C++.

Eu uso muito aqui, para criar threads, e rotinas independentes de plataforma.
---
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2236
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil


Voltar para Visual C++/C/C++/C#

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x