LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 880|回复: 2

谭浩强的一个例程,在gcc下编译出问题了

[复制链接]
发表于 2003-6-2 16:10:16 | 显示全部楼层 |阅读模式
main()
{
  void sort(char *name[],int n);
  void printf(char * name[],int n);
  char *name[]={"Follow me","BASIC","Great Wall","Fortran","computer design"};
  int n=5;
  sort (name,n);
  printf(name,n);
}

void sort(char *name[],int n)
{char * temp;
int i,j,k;
for(i=0;i<n-1;i++)
   {k=i;
   for(j=i+1;j<n;j++)
     if (strcmp(name[k],name[j])>0)k=j;
   if (k!=i)
     {temp=name;name=name[k];name[k]=temp;}
}
}

void printf(char *name[],int n)
{
  int i;
  for (i=0;i<n;i++)
    printf("%s\n",name);
}
[guest@localhost guest]$ gcc -o ex10_27.out ex10_27.c
ex10_27.c: In function `main':
ex10_27.c:7: warning: conflicting types for built-in function `printf'
ex10_27.c:7: warning: extern declaration of `printf' doesn't match global one
ex10_27.c: At top level:
ex10_27.c:27: warning: conflicting types for built-in function `printf'
ex10_27.c: In function `printf':
ex10_27.c:30: warning: passing arg 1 of `printf' from incompatible pointer type
ex10_27.c:30: warning: passing arg 2 of `printf' makes integer from pointer without a cast
用gdb运行提示段错误.请帮忙解释一下.3x
发表于 2003-6-2 20:18:35 | 显示全部楼层
把自己的printf改个名看看
因为这与标准c库中函数重名

不应该起和标准C库中重名的函数
 楼主| 发表于 2003-6-2 20:24:07 | 显示全部楼层
谢谢,原来有此事!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表