use*_*648 1 c forward-declaration function-declaration
我做过这个测验,并不理解输出
#include <stdio.h>
int main()
{
void demo();
void (*fun)();
fun = demo;
(*fun)();
fun();
return 0;
}
void demo()
{
printf("GeeksQuiz ");
}
Run Code Online (Sandbox Code Playgroud)
预期:编译错误,因为我认为通常demo()需要在调用之前初始化main()?
实际结果: GeeksQuiz GeeksQuiz
我的假设是错误的,通常需要在调用它们之前定义函数吗?
函数通常需要在被调用之前定义
好吧,实际上,编译器只需要在调用(使用)之前查看原型.一个向前声明就足够了.
在你的情况下,在里面main(),
void demo();
Run Code Online (Sandbox Code Playgroud)
正在为此目的服务.请注意,这不是函数调用.