Alc*_*ott 3 c c++ static forward-declaration
代码优先:
void foo(int x)
{
void bar(int); //is this forward-decl legal?
bar(x);
}
void bar(int x)
{
//do stuff
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,foo调用bar,通常我把forward-decl放在bar外面foo,如下所示:
void bar(int);
void foo(int x)
{
bar();
}
Run Code Online (Sandbox Code Playgroud)
首先,我认为可以将bar'forward-decl放在里面foo,对吗?
其次,考虑一下,如果bar是这样的static函数:
static void bar(int x)
{
//do stuff
}
Run Code Online (Sandbox Code Playgroud)
那我该如何向前宣布呢?我的意思是前进取消应该取消还是省略static?
是的,将前向声明放在另一个函数中是合法的.然后它只能在该功能中使用.并且将使用您放入其中的函数的命名空间,因此请确保匹配.
该标准说:"对某一特定实体的连续声明所暗示的联系应达成一致." (第7.1.2节).所以是的,原型必须static也是.但是,它似乎不允许将static链接函数的原型放在另一个函数中." static块内不能有函数声明"(同一节).
| 归档时间: |
|
| 查看次数: |
1570 次 |
| 最近记录: |