在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