在C,如果我在這個結構中寫了一個程序:
main()
{
int function1(...)
{
....
}
}
function 2()
{
function1(...)
}
它可以從功能2調用功能1被寫入裏面的主要功能? 也: 在C語言中所有的功能都是全球性的?或者在某些情況下有一些限制,即從一個函數中不能調用另一個函數?
在C,如果我在這個結構中寫了一個程序:
main()
{
int function1(...)
{
....
}
}
function 2()
{
function1(...)
}
它可以從功能2調用功能1被寫入裏面的主要功能? 也: 在C語言中所有的功能都是全球性的?或者在某些情況下有一些限制,即從一個函數中不能調用另一個函數?
你不能在上面C.
int main(void)
{
int function1(void)
{
/* ... */
}
}
的function1
定義巢函數的定義是無效的。
EDIT
在GNU C是可能的嵌套函數。我想這個小片段,它的工作
#include <stdio.h>
int main()
{
void printy() { printf("hallo\n"); }
printy();
}
像GNU C頁聲稱http://gcc.gnu.org/onlinedocs/gcc/Nested-Functions.html
嵌套函數的名稱是本地的定義它
逸岸,如果我改變的塊我代碼
#include <stdio.h>
void func2();
int main()
{
void printy() { printf("hallo\n"); }
printy();
func2();
}
void func2()
{
printy();
}
我得到
gcc test.c
/tmp/ccGhju4n.o: In function `func2':
test.c:(.text+0x3f): undefined reference to `printy'
collect2: ld returned 1 exit status
看到這個:http://stackoverflow.com/questions/2608158/nested-function-in-c – x4rf41
你不能在_C_中嵌套函數,並且你不能叫他們'2'要麼 –
也,你可以不寫在C函數沒有返回類型,這是一個過時的風格不再有效,在目前的標準。 – Lundin