Код идет первым:
void foo(int x)
{
void bar(int); //is this forward-decl legal?
bar(x);
}
void bar(int x)
{
//do stuff
}
В приведенном выше коде foo
вызывает bar
, обычно я помещаю forward-decl bar
вне foo
, например так:
void bar(int);
void foo(int x)
{
bar();
}
Во-первых, я думаю, что можно поместить forward-decl bar
внутрь foo
, верно?
Во-вторых, рассмотрите это, если bar
является функцией static
следующим образом:
static void bar(int x)
{
//do stuff
}
Тогда как я должен объявить об этом вперед? Я имею в виду, должен ли forward-decl принимать или опускать static
?
static
. Если это C, то у вас не должен быть тег c++ в вашем вопросе, и следует помечать ваши предварительные объявления какstatic
. - person ruakh   schedule 08.02.2012static
не устарело, хотя некоторые упорно утверждают, что это так.static
и безымянные пространства имен имеют свои преимущества. - person Ben Voigt   schedule 08.02.2012static
устарело при объявлении объектов в пространство имен, но этот оператор был позже удален.) - person ruakh   schedule 08.02.2012