Есть ли способ объявить переменную в операторе if (используя только ANSI C)?
Пример:
if(int variable = some_function())
{
return 1;
}
Есть ли способ объявить переменную в операторе if (используя только ANSI C)?
Пример:
if(int variable = some_function())
{
return 1;
}
Нет, вы не можете этого сделать.
Что вы можете сделать, так это создать блок только для if
{
int variable;
variable = some_function();
if (variable) return 1;
}
/* variable is out of scope here */
Обратите внимание, что для этого простого случая вы можете вызвать функцию как условие if
(дополнительная переменная не требуется)
if (some_function()) return 1;
IF '(' expression ')' statement
.expression
не может преобразоваться вdeclaration
, поэтому нет возможности поместить объявление в оператор if, как в вашем примере. - person Random Davis   schedule 26.04.2017type var = value
? Нет. - person sjsam   schedule 26.04.2017IF
в этой грамматике относится к ключевому словуif
(IF
— это обычный идентификатор). Грамматика стандарта ISO C — этоif
(
выражение)
оператор или < b>if
(
выражение)
операторelse
заявление - person Keith Thompson   schedule 01.05.2020