Dato il seguente pezzo di codice:Q_UNUSED ha effetti collaterali?
void test(int var)
{
Q_UNUSED(var);
#ifdef SOMETHING
printf("%d",var);
//do something else with var...
#endif
}
Sarebbe il Q_UNUSED
macro ha alcun effetto se io in realtà uso la variabile 'var' in qualche scenario (come nell'esempio di cui sopra), o non ha alcun effetto a tutti quando sopprimo gli avvisi del compilatore per le variabili non utilizzate?
Finora osservo che non ha alcun effetto, ma mi piacerebbe esserne sicuro.
Basta dare un'occhiata alla sua documentazione. Se non ce n'è, leggi la sua definizione. (suggerimento: probabilmente non ce n'è nessuna, sicuramente ** non può ** rendere una variabile "inutilizzabile". Immagino sia qualcosa come '((void) (espressione));' –
@ H2CO3: non potrebbe redeclare 'var' per rendere ambiguo ogni altro uso?' extern qUnusedType var; ' – MSalters
@ H2CO3: corretto, non è magico. – lpapp