| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1995 人关注过本帖
标题:strcat 函数请教
只看楼主 加入收藏
飘青
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2012-7-8
结帖率:70.59%
收藏
已结贴  问题点数:10 回复次数:12 
strcat 函数请教
#include"stdio.h"
void main()
{
char str1[100]={"wecome to beijing"};
char str2[]={"hehe"};
printf("%s\n",strcat(str1,str2));
}

这个程序执行的提示
c4.c: 在函数‘main’中:
c4.c:6: 警告:隐式声明与内建函数‘strcat’不兼容

我没看明白  请各位大侠 告之  感激不尽
搜索更多相关主题的帖子: void 声明 beijing include 
2012-07-18 23:27
fybing2012
Rank: 1
等 级:新手上路
帖 子:3
专家分:5
注 册:2012-7-18
收藏
得分:2 
加入头文件#include "string.h"
还有字符数组定义:char str1[100]={"wecome to beijing"};
可以不用加大括号:char str1[100]="wecome to beijing";

你见,或者不见我
我就在那里
不悲不喜
2012-07-18 23:32
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:1 
那个只是警告,让你使用安全函数版本,strcat()是非安全版本,安全版本是strcat_s()。

授人以渔,不授人以鱼。
2012-07-19 00:01
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:1 
不兼容应该指的不是安全问题。包完头文件要还有警告,我想就是 T 版说的那个事了。
2012-07-19 00:28
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:1 
不包string.h,就不是出警告那么简单了,包了,在VS中就是不安全函数警告,而不是他说的不兼容。他的编译器可能有点独特,strcat()函数的原型是strcat(char*, const char*),1楼代码的str2定义,可能被编译器视为char*,从而说与const char*不兼容,但其实这在普通的编译器中是可以允许的。

授人以渔,不授人以鱼。
2012-07-19 00:34
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:1 
编器不认识的函数,有时会给一个默认原型。规则是以调用时的参数类型为参数,并返回 int。这类编译器从来没有找不找函数的说法(找不着的是链接器),只有函数的隐式声明不兼容这么一说。大名鼎鼎的 gcc 就是这么干的,因此使我觉得这种行为可能是标准规定的。
2012-07-19 01:10
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:1 
实参char*被隐式转换为形参const char*,这是很正常的转换,这都出警告是不必要的(反过来转换倒真会出警告)。哪来的“隐式声明与内建不兼容”?

授人以渔,不授人以鱼。
2012-07-19 01:16
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:1 
Tony就不要瞎猜了,就是因为没有包含string.h头。跟const没有半毛钱关系。形参声明中的const是给函数内部看的,表示不允许修改实参。

原来我只对你的应用能力表示失望,现在我对你的语言基础也表示很失望。我非常怀疑你是不是专业搞计算机的。

重剑无锋,大巧不工
2012-07-19 08:16
飘青
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2012-7-8
收藏
得分:0 
  各位高手逐鹿中原.
2012-07-19 13:31
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:1 
他用的好像是VC6罢 和之后的VC可能不大一样
2012-07-19 17:58
快速回复:strcat 函数请教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016798 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved