c++ - q_disable_copy - qt object connect
¿Q_UNUSED tiene algún efecto secundario? (1)
Dado el siguiente fragmento de código:
void test(int var)
{
Q_UNUSED(var);
#ifdef SOMETHING
printf("%d",var);
//do something else with var...
#endif
}
¿ Q_UNUSED
macro Q_UNUSED
tendría algún efecto si realmente utilizo la variable ''var'' en algún escenario (como en el ejemplo anterior), o si no tiene ningún efecto cuando suprimo las advertencias del compilador para las variables no utilizadas?
Hasta ahora observo que no tiene ningún efecto, pero me gustaría asegurarme.
No en muchos casos (por ejemplo, simplemente pasando una variable simple a la macro). La definición está dentro de qglobal.h
:
# define Q_UNUSED(x) (void)x;
Para deshabilitar las advertencias de variables no utilizadas . Puede usar la variable después de esta macro sin ningún problema.
Sin embargo, si pasa una expresión u otra cosa a la macro y el compilador tiene que evaluar la expresión, puede tener efectos secundarios † .