cif-statementvariablesdeclareansi-c

Declare variable in if statement (ANSI C)


Is there any way to declare variable in if statement (using ANSI C only) ?

Example:

if(int variable = some_function())
{
    return 1;
}

Solution

  • No, you cannot do that.

    What you can do is create a compound statement (anonymous or hanging block) just for the if

        {
            int variable;
            variable = some_function();
            if (variable) return 1;
        }
        /* variable is out of scope here */
    

    Note that for this simple case you can call the function as the condition of the if (no need for an extra variable)

    if (some_function()) return 1;