可以的,前提是要在先声明的函数开头前定义后声明的函数。
例如以下程序段
------code--start-----
#include
void a()
{
b();
}
void b()
{
printf("Hello World!\n");
}
int main()
{
a();
return 0;
}
-----code--end-----
上面这段程序是无法通过编译的,原因是b函数在a函数的后面,a函数找不到b函数
但如果程序段改写成以下这样就可以了:.
------code--start-----
#include
void b();//此处多了一处声明
void a()
{
b();
}
void b()
{
printf("Hello World!\n");
}
int main()
{
a();
return 0;
}
-----code--end-----
只要像上面一样加一行“void b();”定义即可,不过注意必须放在a函数的前面。
不知道你用的什么编译器,有些版本也许支持这么做,但是从兼容性和严谨的角度来讲,还是应该在main函数之前先声明,或者把main函数放到所有代码最后。另外,goodjob和nobody函数没有return任何东西,严格来讲应该声明为void而不是int,否则有些编译器也不能通过。
可以