为什么我不能在声明其内容之前声明一个函数? (c++)

Why can I not declare a function before I declare its contents? (c++)

我有这个程序可以添加数字的幂,但出于某种原因,当我 运行 它时它一直向我抛出错误,如果我声明并定义内容,程序 运行 没问题在主要功能之前,但我不明白为什么这是必要的......这是给我带来问题的代码:

#include <iostream>
#include <math.h>
using namespace std;

long long addPow(int n, int p);

int main() {
    cout << addPow(100, 1) * addPow(100, 1) - addPow(100, 2) << endl;
    return 0;
}

addPow(int n, int p) {
    long long sum = 0;
    for (int i = 1; i <= n; i++) {
        sum += pow(i, p);
    }
    return sum;
}

改成这个可以解决所有问题,但我真的不知道为什么...

#include <iostream>
#include <math.h>
using namespace std;

long long addPow(int n, int p) {
    long long sum = 0;
    for (int i = 1; i <= n; i++) {
        sum += pow(i, p);
    }
    return sum;
}

int main() {
    cout << addPow(100, 1) * addPow(100, 1) - addPow(100, 2) << endl;
    return 0;
}

如果有人能帮助我,我将不胜感激!

第一个代码块中的函数,定义为

addPow(int n, int p) {

需要您放入原型中的额外信息(即 return 类型)。它应该是这样的:

long long addPow(int n, int p) {