Учитывая следующий фрагмент кода:Имеет ли Q_UNUSED какие-либо побочные эффекты?
void test(int var)
{
Q_UNUSED(var);
#ifdef SOMETHING
printf("%d",var);
//do something else with var...
#endif
}
Будет ли Q_UNUSED
макрос иметь никакого эффекта, если я на самом деле использовать переменную «Var» в каком-то сценарии (как в примере выше), или это не имеет никакого эффекта когда я подавляю предупреждения компилятора для неиспользуемых переменных?
До сих пор я наблюдаю, что это не имеет никакого эффекта, но я хотел бы убедиться.
Просто ознакомьтесь с его документацией. Если их нет, прочитайте его определение. (подсказка: она, вероятно, не имеет никакого значения.Это, безусловно, ** не может ** сделать переменную «непригодной». Я думаю, что это что-то вроде '((void) (выражение)),' –
@ H2CO3: redeclare 'var', чтобы любое последующее использование было неоднозначным?' extern qUnusedType var; ' – MSalters
@ H2CO3: правильно, это не так уж и волшебно. – lpapp