Pregunta sobre parámetros en C++.

Iniciado por Zodiak98, 25 Septiembre 2014, 22:34 PM

0 Miembros y 1 Visitante están viendo este tema.

Zodiak98

Hola, bueno es que me he estado preguntando qué pasa exactamente al pasar un parámetro como este:
Código (cpp) [Seleccionar]

MB_ICONINFORMATION | MB_OK


Por ejemplo:
Código (cpp) [Seleccionar]

MessageBox( hwnd, (LPSTR) "Function Not Yet Implemented.",
                              (LPSTR) szClassName,
                              MB_ICONINFORMATION | MB_OK );


¿Qué sucede exactamente? No sé si me logré explicar con exactitud, pero es que he visto muchos códigos fuentes y algunos reciben ese tipo de parámetros; por ende, supe que será de utilidad saberlo con exactitud. Espero respuestas, saludos. :)

engel lex

normalmente usa el macro "define" para definirlo como constante y suplanta un valor numerico, aqui ej del messajeBox en msdn fijate que en la lista está el nombre y un valor en hexadecimal (0x....) pudieras perfectamente colocar ese valor, solo que se definen para que sean más "humanos"
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

x64core

Cita de: Zodiak98 en 25 Septiembre 2014, 22:34 PM
Hola, bueno es que me he estado preguntando qué pasa exactamente al pasar un parámetro como este:
Código (cpp) [Seleccionar]

MB_ICONINFORMATION | MB_OK


Por ejemplo:
Código (cpp) [Seleccionar]

MessageBox( hwnd, (LPSTR) "Function Not Yet Implemented.",
                              (LPSTR) szClassName,
                              MB_ICONINFORMATION | MB_OK );


¿Qué sucede exactamente? No sé si me logré explicar con exactitud, pero es que he visto muchos códigos fuentes y algunos reciben ese tipo de parámetros; por ende, supe que será de utilidad saberlo con exactitud. Espero respuestas, saludos. :)
Nada más son valores constantes que se pasan a la función usando el operador | y combinar todas las posibles banderas de entrada,
Luego en la función suelen usar el operador & para verificar posibles banderas y así determinar como propiedades/caracteristicas/comportamiento
debes ser usadas en el proposito de la función, en este caso el mensaje que sera mostrado en pantalla:
if(Value & MB_ICONINFORMATION)
{
     ....
}
y así.

Cita de: engel lex en 25 Septiembre 2014, 22:40 PM
normalmente usa el macro "define" para definirlo como constante y suplanta un valor numerico, aqui ej del messajeBox en msdn fijate que en la lista está el nombre y un valor en hexadecimal (0x....) pudieras perfectamente colocar ese valor, solo que se definen para que sean más "humanos"
engel lex, eso no tiene nada que ver con la pregunta que hizo el usuario, él no pregunto acerca del uso de define ni algo
que ver:
Cita de: Zodiak98 en 25 Septiembre 2014, 22:34 PM
Hola, bueno es que me he estado preguntando qué pasa exactamente al pasar un parámetro como este:
Cita de: Zodiak98 en 25 Septiembre 2014, 22:34 PM
¿Qué sucede exactamente? ...

engel lex

ahh sorry, había entendido que se refería a las definiciones, no a las operaciones
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.