2017-04-26 59 views
0

有沒有辦法在聲明變量if語句(使用ANSI C)?中聲明,如果聲明(ANSI C)可變

例子:

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

不在C. – BLUEPIXY

+1

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

+4

允許根據 號到[ANSI C語法](https://www.lysator.liu.se/c/ANSI-C-grammar-y.html#expression),if語句的語法是'IF'('expression') '聲明'。 'expression'不能解析爲'declaration',所以沒有辦法在if語句中聲明一個聲明,就像你的例子。 –

回答

2

不,你不能這樣做。

你可以做的是隻爲if

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

注意,對於這個簡單的例子,你可以調用功能的if條件(無需額外的變量)

創建塊
if (some_function()) return 1;