Página 1 de 1

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

MensagemEnviado: 22 Dez 2016 10:09
por Red Neck Guy
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?

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

MensagemEnviado: 23 Dez 2016 10:42
por Rodrigo_P_A
Realmente, se souber usar, o C quase vira um C++.

Eu uso muito aqui, para criar threads, e rotinas independentes de plataforma.