2010-03-16 67 views
2

有一個在我的編程語言教材的一個問題是如下的順序如下:C編寫一個函數,包括報表[慣於編譯]

編寫一個C函數,其中包括 以下的順序陳述:

x = 21; int x; x = 42;

運行程序並解釋 結果。用C++ 和Java重寫相同的代碼並比較結果。

我已經編寫了代碼,並用它來播放所有三種語言,但我甚至無法編譯它。這包括在三行以及調用函數中聲明x(因爲這個問題顯然是試圖說明範圍問題)

我想解釋一下結果並自行比較,因爲它是一個任務的問題,但我想知道如果任何人有任何洞察力,如何讓這個代碼編譯?

感謝

+1

呃,你可以發佈你到目前爲止?這樣,有人可以給你一個指針而不會暴露太多。 PS。不僅要求你的作業答案的榮譽;-) – ptomato 2010-03-16 00:20:53

回答

4

注意以下要求C99:

int x; 

void foo() 
{ 
    x = 21; 
    int x; 
    x = 42; 
} 

由於這是功課,你需要提供自己的解釋。

+0

這不希望爲我編譯。有可能是因爲我沒有告訴gcc使用C99。我會給你一槍!謝謝。 – Cody 2010-03-16 00:21:11

+0

@Cody - 使用gcc,你需要使用'-std = c99'選項。 – 2010-03-16 00:23:09

+0

剛剛編譯,它工作正常。解釋現在非常明顯。謝謝! – Cody 2010-03-16 00:26:13