免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 1932 | 回复: 18
打印 上一主题 下一主题

关于一个小程序的问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-01-05 12:44 |只看该作者 |倒序浏览
我写了下面这个程序:大家帮我看看。
文件 strcattest.c
#include <stdio.h>;

void strcat(char *, char *);

main()
{
     char *s = "what are you ";
     char *t = "doing?";

     strcat(s, t);
     printf("%s\n", s);
}
文件strcat.c
void strcat(char *s, char *t)
{
     for(; *s; s++)
          ;
     for(; *s=*t; s++,t++)
          ;
}

然后我 cc strcat.c strcattest.c 编译之后出现下面的警告:
strcat.c:2:warning: conflicting types for built-in function 'strcat'
strcattest.c:3:warning: conflicting types for built-in function 'strcat'
我该怎么解决?我的程序出什么问题了?

论坛徽章:
0
2 [报告]
发表于 2005-01-05 12:51 |只看该作者

关于一个小程序的问题。

就是说strcat这个函数与系统函数重名了。最好不要这样。

论坛徽章:
0
3 [报告]
发表于 2005-01-05 12:52 |只看该作者

关于一个小程序的问题。

把strcat改个名字,ANSI库中有这个名字的函数,同名冲突了。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-01-05 12:52 |只看该作者

关于一个小程序的问题。

没事。
是因为你的程序使用了一个自己定义的strcat,而这个函数是原来的库函数。所以编译器出于好心就警告了你一下。

论坛徽章:
0
5 [报告]
发表于 2005-01-05 13:06 |只看该作者

关于一个小程序的问题。

我现在把strcat 改成mystrcat了,没有警告了。编译成功。然后我 运行程序,
结果出不来。这是怎么回事?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2005-01-05 13:10 |只看该作者

关于一个小程序的问题。

char *s = "what are you ";

空间在text段,不可写。如果用TC,应该可以出结果。

论坛徽章:
0
7 [报告]
发表于 2005-01-05 13:16 |只看该作者

关于一个小程序的问题。

那我要怎么改呢?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
8 [报告]
发表于 2005-01-05 13:20 |只看该作者

关于一个小程序的问题。

不是吧?
建议好好理解C语言中对内存的操作。数组和指针的内容。

改成char s[] = "......"就好了。

论坛徽章:
0
9 [报告]
发表于 2005-01-05 13:21 |只看该作者

关于一个小程序的问题。

char s[100]="what are you ";
或者:
char * s=(char *)malloc(100);
strcpy(s, "what are you ";
...//use of s;
free(s);

论坛徽章:
0
10 [报告]
发表于 2005-01-05 13:29 |只看该作者

关于一个小程序的问题。

[quote]原帖由 "aero"]..."就好了。[/quote 发表:
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP