La Web del Programador: Comunidad de Programadores
 
    Pregunta:  53681 - COMO USAR | PARA OPCIONES DE UNA FUNCION
Autor:  Harold Puentes
Que tal maestros del C

Si alguno de ustedes sabe como se crea un funcion que pueda recibir y validar diferentes opciones separadas por |, por ejemplo asi como funciona un MessageBox del API de windows que para darle las opciones para que muestre los botones si no cancelar, uno le envia MB_YESNOCANCEL | MB_ICONEXCLAMATION | MB_DEFBUTTON3 ,

enton seria algo si como

enum opciones{
OP1=2,
OP2=4,
OP3=8
}

/*declaracion */
int MiFuncion( opciones misop );

/* llamado*/

MiFuncion( OP1 | OP2 | OP3 );

/*Implementacion*/
int MiFuncion( opciones misop ){

????
????
????
//Como seria en esta funcion??
}

Si alguno ha hecho una funcion de este tipo o sabe como hacerlo, le agradeceria mucho que me compartiera el conocimiento

Gracias ;-)

  Respuesta:  Caleb G.J.
hay varias maneras de hacer lo que deseas.... este es solo una forma.
solo un ejemplo..

#define OP1 1
#define OP2 2
#define OP3 4
#define OP4 8

int MiFuncion(int op );

void main()
{
int r;
r = MiFuncion(OP3 | OP4 | OP2);
}

int MiFuncion(int op )
{
int opcion[]={0,0,0,0};

if(op & 0x1) opcion[0]=1; else opcion[0]=0;
if(op & 0x2) opcion[1]=1; else opcion[1]=0;
if(op & 0x4) opcion[2]=1; else opcion[2]=0;
if(op & 0x8) opcion[3]=1; else opcion[3]=0;

return op;
}