gpt4 book ai didi

c++ - 为什么即使没有任何类声明也需要原型(prototype)?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:25:02 26 4
gpt4 key购买 nike

如果我这样做: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();
}

我可以这样声明原型(prototype):Ex3:

#include <iostream>

void doSomething(void);

int main()
{
//try to call doSomething function
doSomething();
}

void doSomething()
{
std::cout << "Call me now!" << std::endl;
}

但为什么第一个例子不起作用?为什么我什至必须先声明一个原型(prototype)或调用函数,最后调用 main 函数?

谢谢!

最佳答案

您不能在编译器没有首先看到定义或声明的情况下调用函数——就这么简单。原型(prototype)或实际定义必须出现在调用之前。

关于c++ - 为什么即使没有任何类声明也需要原型(prototype)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8199081/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com