重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你把大括号的位置放错了,sushu函数被定义在了main函数里面,但是按照C语言的规定,函数不允许嵌套定义,所以你的sushu相当于没有定义(不知为何你的编译器没有报错说不允许在函数内定义函数)。解决方法是把你最后面多出来的大括号移到main函数最后面。
“只有客户发展了,才有我们的生存与发展!”这是成都创新互联的服务宗旨!把网站当作互联网产品,产品思维更注重全局思维、需求分析和迭代思维,在网站建设中就是为了建设一个不仅审美在线,而且实用性极高的网站。创新互联对网站设计、网站制作、网站制作、网站开发、网页设计、网站优化、网络推广、探索永无止境。
把被调用函数写到调用函数上面去,这样就可以免去声明。
这里你也可以把被调用函数剪切到调用函数上面去做一下测试。
编译的命令错了吧
gcc a.c b.c -o main
其他没问题,即使不加b.h编译也不会错
大部分原因是链接时缺失了相关目标文件
首先编写如下代码
//test.h
#ifndef__TEST_H__
#define__TEST_H__
voidtest();
#endif
//test.c
#includestring.h
#includestdio.h
voidtest()
{
printf("justtestit\n");
}
//main.c
#include"test.h"
intmain(intargc,char**argv)
{
test();
return0;
}
然后输入以下命令,你会得到两个.o文件
$gcc-ctest.c
$gcc_cmain.c
编译时报错了,这是最典型的undefinedreference错误,因为在链接时发现找不到某个函数的实现文件。编写如下命令即可。
$gcc-omainmain.o test.o