你把大括号的位置放错了,sushu函数被定义在了main函数里面,但是按照C语言的规定,函数不允许嵌套定义,所以你的sushu相当于没有定义(不知为何你的编译器没有报错说不允许在函数内定义函数)。解决方法是把你最后面多出来的大括号移到main函数最后面。
创新互联建站是专业的合作网站建设公司,合作接单;提供网站制作、成都网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行合作网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
C语言没有bool类型,需要自己来定义,同时IsPrime函数的变量i重复定义了修改如下。
# include stdio.h //这是代码
typedef enum //定义bool类型
{
true = 0,
false = 1,
}bool;
bool IsPrime(int m) //第三行
{
int i;
for (i = 2; i m; ++i)// 多了一个int
{
if(m%i == 0)
break;
}
if(i == m)
return true;
else
return false;
}
把被调用函数写到调用函数上面去,这样就可以免去声明。
这里你也可以把被调用函数剪切到调用函数上面去做一下测试。
出现该错误的原因为编译时只变编译了源文件的一部分,故在链接时无法从编译好的目标代码中找到print函数,所以出错。
根据你的源文件结构,个人推荐先单独编译源文件为多个object文件,再统一链接。
方法如下
gcc -c main.c # -c参数的作用是让gcc只编译,不链接
gcc -c test.c
gcc -o main main.o test.o # 将编译好的目标代码链接
当然,以上是在gcc为编译器的前提下执行,如使用clang等其他编译器,方法类似(clang的调用方法与gcc高度兼容)
两种情况:
1、定义的函数名与调用时的函数名不相同,可能是手误,拼写错误
2、函数调用写到了函数定义之前了
请提供相应的代码或截图,方便进一步分析原因
这种属于函数返回值的隐式声明。 隐式声明的函数返回值类型都是int 当然了,这个只需要了解一下就好了。不建议这么写。 现在很多编译器都不允许这样的声明出现。如果C语言中调用函数前面没有定义它的返回值类型
新闻标题:c语言调用函数未定义 c语言函数未定义是什么意思
当前路径:https://www.cdcxhl.com/article38/hpeppp.html
成都网站建设公司_创新互联,为您提供网站排名、手机网站建设、ChatGPT、虚拟主机、品牌网站设计、网站策划
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联