如果无法定义函数,那么在另一个函数的范围内声明函数的目的是什么

时间:2018-03-10 21:33:06

标签: c++ function

如果无法定义函数,在另一个函数范围内声明函数的目的是什么?

例如:

int f(int a)
{
    return a;
}
void g()
{
    void f(char c);
}

我可以在范围void f(char c);内声明g()但无法定义它。因此,该声明在g()范围内消失。什么是以似乎没用的方式声明功能的目的是什么?

1 个答案:

答案 0 :(得分:3)

它允许g调用该函数,为了清楚起见,我将其重命名为h:

int f(int a)
{
    return a;
}
void g()
{
    void h(int c);
    h( 100 );
}

void h(int c)
{
}

int main()
{
    g();
    return 0;
}

但是没有声明该函数可供其他人使用,这不会编译:

int f(int a)
{
    return a;
}
void g()
{
    void h(int c);
    h( 100 );
}

void i()
{
    h(10);
}

void h(int c)
{
}

int main()
{
    g();
    return 0;
}