紧急求教:请问函数里面内再引用函数,类型为void,为什么不能运行?

例如:
void a(void)
{puts("dsf");
a1();
}
void a1(void)
{puts("sfsf");
}
系统会说什么类型不符合之类的 请问什么意思?
但是若改成:
void a(void)
{puts("dsf");
a1();
}
int a1(void)
{puts("sfsf");
} 就可以了, 请问是什么原因?

函数在使用之前要先声明才可以,你第二个程序先定义的了函数a1,然后在使用的a1,所以可以。但是第一个程序先使用了a1,再定义的a1,当然不行了。
你可以把第一个改成
void a1(void);//先对函数a1进行声明
void a(void)
{puts("dsf");
a1();
}
void a1(void)
{puts("sfsf");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-06-01
我觉得对a1的定义应该在前面
而且你下面的定义为int的函数也该有个return语句哦
第2个回答  2009-06-01
还有这等事儿?你什么编译环境?
相似回答