调用在当前函数下声明的函数

0 c

我是C的新手,在尝试调用在当前函数Ex下声明的函数时遇到问题:

void test (){ test1 ();}
void test1(){ }
Run Code Online (Sandbox Code Playgroud)

我可以将test1移到测试之上,但我也有这个:

void test () {test1 ()}
void test4 () {test ()}
void test3 () {test4 ()}
void test1 () {test3 ()}
Run Code Online (Sandbox Code Playgroud)

所以你看到如果我移动test()我将对test4()有同样的问题吗?我能做什么 ?

谢谢

Jar*_*Par 5

C将从上到下解析您的文件.在验证函数的使用之前,它至少需要了解函数的签名.这就是您遇到问题的原因.

如果你想在定义函数之前告诉C一个函数,你需要对函数进行原型设计.这实际上是将函数的签名添加到文件中以供C处理.

例如,您可以使用以下内容对test1进行原型设计

void test1();
Run Code Online (Sandbox Code Playgroud)

然后你可以在它定义之前调用它

void test1();
void test() { test1(); }
void test1() {}
Run Code Online (Sandbox Code Playgroud)