如果我只是这样做:Ex1:
#include <iostream>
int main()
{
//try to call doSomething function
doSomething();
}
void doSomething()
{
std::cout << "Call me now!" << std::endl;
}
我收到编译错误!因为编译不知道什么是“doSomething”。
但是,如果我将 doSomething 的位置更改为第一位,则程序可以成功编译。Ex2:
#include <iostream>
void doSomething()
{
std::cout << "Call me now!" << std::endl;
}
int main()
{
//try to call doSomething function
doSomething();
}
我可以将原型声明为这样:Ex3:
#include <iostream>
void doSomething(void);
int main()
{
//try to call doSomething function
doSomething();
}
void doSomething()
{
std::cout << "Call me now!" << std::endl;
}
但为什么第一个例子不起作用呢?为什么我必须声明原型或先调用函数,最后调用主函数?
Thanks!
首先,如果编译器没有看到定义或声明,就无法调用函数——就这么简单。原型或实际定义必须出现在调用之前。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)