2017-04-26 5 views
0

Gibt es eine Möglichkeit Variable zu deklarieren in if-Anweisung (mit ANSI C nur)?Deklarieren Variable in if-Anweisung (ANSI C)

Beispiel:

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

Nr , die nicht in C erlaubt ist – BLUEPIXY

+1

http://stackoverflow.com/questions/8474100/where-you-can-and-cannot-declare-new-variables-in-c –

+4

Nach an die [ANSI C Grammatik] (https://www.lysator.liu.se/c/ANSI-C-grammar-y.html#expression), ist die Grammatik für die if-Anweisung 'IF '(' Ausdruck ') "Aussage". 'expression' kann nicht in' declaration' aufgelöst werden, daher gibt es keine Möglichkeit, eine Deklaration in eine if-Anweisung wie in Ihrem Beispiel einzufügen. –

Antwort

2

Nein, können Sie das nicht tun.

Was können Sie tun, ist es, einen Block zu erstellen, für die if

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

Beachten Sie, dass für diesen einfachen Fall, dass Sie die Funktion als Bedingung der if nennen können (keine Notwendigkeit für eine zusätzliche Variable)

if (some_function()) return 1;