如果无法定义函数,在另一个函数范围内声明函数的目的是什么?
例如:
int f(int a)
{
return a;
}
void g()
{
void f(char c);
}
我可以在范围void f(char c);
内声明g()
但无法定义它。因此,该声明在g()
范围内消失。什么是以似乎没用的方式声明功能的目的是什么?
答案 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;
}