此处不允许使用函数定义

Function definition not allowed here?

本文关键字:函数 定义 不允许      更新时间:2023-10-16

我是C++的新手。我正在编写这个函数,但不知何故它给了我这个错误

Error: a function-definition is not allowed here before '{' token

我的代码是

int main() {
    //number is given num
    // power is raise to power
    int raiseTo(int number, int power)
    {
        for (int i=0;i<=power;i++)
        {       
            number=number*number;
        }
        return number;
    }
}

请告诉我我做错了什么。谢谢。

两个主要问题:

    不应在函数
  1. 内实现函数
  2. 您未正确执行幂算法

请尝试以下代码:

int raiseTo(int number,int power)
{
    int result = 1;
    for (int i=0; i<power; i++)
    {
        result = result*number;
    }
    return result;
}
int main()
{
    int x = 2;
    int y = 3;
    int z = raiseTo(x,y);
    printf("%d^%d = %dn",x,y,z);
    return 0;
}

C++标准说:

§ 8.4.1/2 [..]函数应仅在命名空间中定义或 类范围。

所以你正在做的事情是根本不允许的。