c语言函数没定义错误,c语言未对函数类型说明

Linux下编写c语言头文件,编译时出现“函数未定义”

出现该错误的原因为编译时只变编译了源文件的一部分,故在链接时无法从编译好的目标代码中找到print函数,所以出错。

成都创新互联公司是一家从事企业网站建设、成都网站制作、成都网站设计、外贸营销网站建设、行业门户网站建设、网页设计制作的专业网站建设公司,拥有经验丰富的网站建设工程师和网页设计人员,具备各种规模与类型网站建设的实力,在网站建设领域树立了自己独特的设计风格。自公司成立以来曾独立设计制作的站点近千家。

根据你的源文件结构,个人推荐先单独编译源文件为多个object文件,再统一链接。

方法如下

gcc -c main.c # -c参数的作用是让gcc只编译,不链接

gcc -c test.c

gcc -o main main.o test.o # 将编译好的目标代码链接

当然,以上是在gcc为编译器的前提下执行,如使用clang等其他编译器,方法类似(clang的调用方法与gcc高度兼容)

C语言关于函数声明的问题,为什么声明后还是报错说函数未定义

你把大括号的位置放错了,sushu函数被定义在了main函数里面,但是按照C语言的规定,函数不允许嵌套定义,所以你的sushu相当于没有定义(不知为何你的编译器没有报错说不允许在函数内定义函数)。解决方法是把你最后面多出来的大括号移到main函数最后面。

c语言程序错误。函数定义错误。

主要的错误在于,你定义的函数没有放在主函数前面并且在调用函数时没有声明函数;

建议将所有函数放到主函数前面,或者在主函数前声明这些函数;

void pointcircle(void) {

.......

r1=zx-xx;

r2=zy-yy;

......

}这里能完成转换,这种赋值语句会降低精度。

void pointcircle(void) {

........

printf("在里面")

else if ((r1*r1+r2*r2)==float(rr*rr))

........

printf()后面貌似少了个 “;”

主函数少了个 }

哥给你改下吧,以后再也不看这样的代码了:

#include "stdio.h"

void pointcircle(void){

int xx,yy,zx,zy,rr;

float r1,r2;

printf("x,y,x,y,r\n");

scanf("%d,%d,%d,%d,%d",xx,yy,zx, zy,rr);

r1=zx-xx;

r2=zy-yy;

if((r1*r1+r2*r2)(rr*rr))

printf("在里面");

else if ((r1*r1+r2*r2)==float(rr*rr))//继续判断

printf ("On");

else

printf("Out");//完成

}

void pointpoint(void) {

int xx,yy,zx,zy; //创建全局变量来保存 数据

printf ("Please input your own number:坐标1(x,y),坐标2(x,y)?");

scanf("%d,%d,%d,%d",xx,yy,zx,zy );

if ((xxzx)(yyzy)) //判断条件

printf("点1优于点2");

else if ((xxzx)(yyzy))

printf ("点2优于点 1"); //输出

else printf("谁也不优于 谁!");

}

void timetran(void) {

int secs,hour,min,sec; //创建变量

printf ("Please input your own secs!\n");

scanf ("%d",secs); //输入并赋值给变量

hour=secs/3600; //计算过程

min=(secs/60)-hour*60;

sec=secs%60;

printf ("Now is %d:%2d:%2d ",hour,min,sec); //输出

}

void numbers(void) {

int nub; // 创建变量

printf("Please input your number!");

scanf ("%d",nub); //输入内容并赋值给变 量

if (nub10)//判断

printf ("%d is less than 10!",nub);

else if (nub100)

printf ("%d is less than 100!",nub);

else if (nub1000 )

printf ("%d is less than 1000!",nub);

else

printf ("%d is more than 1000!",nub); //输出

}

void main (void) {

void pointcircle(void);

void pointpoint(void);

void timetran(void);

void numbers(void);

int select;

printf ("Please choose your own select:\n");

select=getchar();

switch(select){

case 1:pointcircle();

break;

case 2:pointpoint();

break;

case 3:timetran();

break;

case 4:numbers();

break;

default : printf ("Wrong choose!");

}

}

C语言提示某个函数未定义求帮忙

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;

}


文章标题:c语言函数没定义错误,c语言未对函数类型说明
当前链接:http://hbruida.cn/article/dssoegh.html