(Знатокам Си) Что означает такой синтаксис...
это чтобы компилятор не ругался, что есть неиспользуемая переменная ?
ничего не означает.
может быть, это наивная попытка обмануть оптимизатор.
В этом случае это заточено на определённый компилятор. т.е. в одном компиляторе эффекта не имеет, а в другом - оптимизатор оптимизирует по-другому и получается желаемый эффект.
Известны случаи, когда оптимизатор оптимизирует слишком заумно - так, что поведение программы получается не таким, каким задуманно.
может быть, это наивная попытка обмануть оптимизатор.
В этом случае это заточено на определённый компилятор. т.е. в одном компиляторе эффекта не имеет, а в другом - оптимизатор оптимизирует по-другому и получается желаемый эффект.
Известны случаи, когда оптимизатор оптимизирует слишком заумно - так, что поведение программы получается не таким, каким задуманно.
на неиспользованный параметр функции вроде давно уже никто не ругается.
всякие #pragma argsused это атавизм имхо
всякие #pragma argsused это атавизм имхо
это чтобы компилятор не ругался, что есть неиспользуемая переменная ?Думаю, так и есть. Либо не компилятор, а какой-нибудь lint.
lint'ы разные ругаются. У нас на работе, например, есть Style Guide, и под него настроен lint, который ругается в т.ч. на unused variable.
в fftw видел такой дефайн
#define UNUSED(x) voidx
#define UNUSED(x) voidx
это чтобы компилятор не ругался, что есть неиспользуемая переменная ?видимо да, для этого. А как это компилятор обработает? Он подобную конструкцию просто пропустит или код какой сгенерит?
все будет чики-поки 
не могу говорить за все компиляторы, но я бы на их месте пропустил
)

не могу говорить за все компиляторы, но я бы на их месте пропустил
)еще делают вот так, чтобы добиться того же эффекта:
static bool Callback(const char * srvurl, void * /*cookie*/)
{
....
или код какой сгенеритага xorl %eax,%eax =)
Оставить комментарий
gopnik1994