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

如题所述

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

例如以下程序段

------code--start-----

#include <cstdio>

void a()
{
    b();
}

void b()
{
    printf("Hello World!\n");
}

int main()
{
    a();
    return 0;
}

-----code--end-----

上面这段程序是无法通过编译的,原因是b函数在a函数的后面,a函数找不到b函数

但如果程序段改写成以下这样就可以了:.


------code--start-----

#include <cstdio>

void b();//此处多了一处声明

void a()
{
    b();
}

void b()
{
    printf("Hello World!\n");
}

int main()
{
    a();
    return 0;
}

-----code--end-----


只要像上面一样加一行“void b();”定义即可,不过注意必须放在a函数的前面。

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-05-26
不知道你用的什么编译器,有些版本也许支持这么做,但是从兼容性和严谨的角度来讲,还是应该在main函数之前先声明,或者把main函数放到所有代码最后。另外,goodjob和nobody函数没有return任何东西,严格来讲应该声明为void而不是int,否则有些编译器也不能通过。追问

不一定是main函数,是main之前声明的两个函数,上面的可以调用下面的函数吗?

本回答被网友采纳
第2个回答  2016-05-26
可以追答

C不可以

C加加自动在前边define函数

相似回答