2015-11-01 245 views
0

在C我正在寫一些我第一次練習。早些時候,我試圖在main中聲明一個簡單的函數,它帶有一個錯誤:「函數定義不允許在這裏」。但我認爲一個函數可以在主或者外面聲明,唯一的區別是範圍??在這裏,我還讀過其他人在主內部編寫函數的問題,爲什麼它不讓我這樣做呢? 感謝聲明一個函數?

+0

你應該顯示你的代碼,否則沒有人可以幫你。但請注意,在C中,你不能在另一個內部定義一個函數。 – Renzo

+0

http://stackoverflow.com/questions/957592/functions-inside-functions-in-c – Rob

+0

也許使用Pascal來代替? :) –

回答

3

可以聲明另一個函數裏面的函數:

int main(void) { 
    int foo(int); // declaration 
    ... 
} 

但你不能定義功能的其它函數內部:

int main(void) { 
    // Doesn't work. 
    int foo(int x) { 
     return x * 2; 
    } 
    ... 
} 

此外,聲明在函數內部其他功能是非常不尋常的事情,並且基本上不需要。