當我編譯我的Arduino的草圖(C語言),我得到的錯誤:編譯器錯誤:在C代碼「‘E’是不是在這個範圍內聲明」
sketch_oct30b:2: error: ‘e’ was not declared in this scope
sketch_oct30b:2: error: ‘z’ was not declared in this scope
這是一段代碼, char z
位於整個代碼的第一行。
char z[4] = "z_0";
int e = 0;
char delta(e, z) {}
從我發現了這個錯誤意味着程序員忘記了一些聲明,但我實在不明白,我忘了申報e
或z
。 有人可以告訴我我忘了在哪裏申報嗎?
如果這些是全局變量,可以在函數參數中刪除'e'和'z'。 – ooga 2014-10-30 18:55:20
@ooga爲什麼?函數是否需要知道它應該工作的參數? – Merlin 2014-10-30 21:59:44
如果變量是「全局」的,那麼它們在所有函數中都是可見的,不僅*不需要被聲明爲函數參數,而且實際上*不能(具有相同的名稱)參數變量會「隱藏」全局變量,並且它們將不可訪問。儘管如此,全局變量通常是一個壞主意,所以你可能想看看下面的答案。 – ooga 2014-10-30 22:34:51