我将'(RE)'
放入void F()
,但我的程序遇到了一个有趣的问题。当我将(RE)
放入我的F()
空洞时,我的void RE()
编码在void F()
上方,void RE()
将如何知道void F()
}? Visual Studio不会让我以这种方式运行我的程序。我认为它们在main()
之外被宣布为无效函数,所以我认为它们可以在任何地方工作。
.
.
.
.
.
void F()
{
if (nextChar() == 'a')
match('a');
else if (nextChar() == 'b')
match('b');
else if (nextChar() == 'c')
match('c');
else if (nextChar() == 'd')
match('d');
else if (nextChar() == 'a')
{
match('(');
RE(); //HOW????
match(')');
}
}
void RE()
{
if (nextChar() == 'a')
{
RE();
RE();
}
else if (nextChar() == 'a')
{
RE();
match('|');
RE();
}
else if (nextChar() == 'a')
{
RE();
match('*');
}
else if (nextChar() == 'a')
F(); //How????
}
int main()
答案 0 :(得分:3)
功能可以包含declarations和definitions。为了能够调用函数,您需要的所有代码都是能够看到声明。
因此,请为RE
和F
提供声明,然后定义它们。
void RE();
void F();
//RE and F definitions here.
答案 1 :(得分:1)
在RE()
之前加上F()
的声明:
void RE();
void F()
{
...
}
void RE()
{
...
}