c++先声明的函数可以调用后声明的函数吗?

2025-04-18 05:23:45
推荐回答(3个)
回答1:

可以的,前提是要在先声明的函数开头前定义后声明的函数。

例如以下程序段

------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函数的前面。

回答2:

不知道你用的什么编译器,有些版本也许支持这么做,但是从兼容性和严谨的角度来讲,还是应该在main函数之前先声明,或者把main函数放到所有代码最后。另外,goodjob和nobody函数没有return任何东西,严格来讲应该声明为void而不是int,否则有些编译器也不能通过。

回答3:

可以