Возможный дубликат:
Что делает пустое литье?
Я просто просматривал проект и нашел это
//This is in a .cpp file
#if xxx == 5
(void)var;
#endif
Что делает это (void)var
делать? Любое значение при этом.
Я слышал, что это как-то связано с compilation
,
Добавление тегов c и cpp incase — это обычное дело.
(void)var;
Это утверждение фактически ничего не делает. Но помогает в заглушении компилятора.
В основном это делается, чтобы избежать неиспользуемая переменная предупреждения.
В ответ на комментарий @ vonbrand. Здесь выдуманы ситуации, когда это полезно.
Например, в gcc, когда опция компиляции -Werror
используется по умолчанию в make-файле, и может быть нежелательно изменять его для всего проекта. Кроме того, это абсолютно безвредно
и портативный, чтобы сделать (void)var;
для любой переменной. Поэтому я не понимаю, почему это была бы плохая идея, которая помогает программистам в некоторых ситуациях облегчать жизнь.
Поэтому не всегда желательно избавляться от неиспользуемых переменных. Для этого потребуется больше работы, когда это потребуется позже.
Преобразование в void выполняется, чтобы избежать предупреждения компилятора о неиспользуемой переменной.
Это также можно сделать на глобальном уровне, используя флаг компилятора: -Wno-unused-variable.