这里不允许使用函数定义?

时间:2014-11-17 15:53:47

标签: c++

我是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;
    }
}

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

2 个答案:

答案 0 :(得分:4)

C ++标准说:

  

§8.4.1/ 2 [..] 一个函数只能在命名空间或   班级范围。

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

答案 1 :(得分:4)

两个主要问题:

  1. 您不应在函数
  2. 中实现函数
  3. 您没有正确执行电源算法
  4. 请尝试使用此代码:

    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 = %d\n",x,y,z);
        return 0;
    }