出现fatal error LNK1169: one or more multiply defined symbols found

xiguaxue 2012-11-15 01:22:07
请大家帮忙!
多重定义这种错误怎么解决?
程序如下:

//#include <stdlib.h>
#include <stdio.h>

//typedef int size_t;

strlen (char * string)
{
int length = 0;

while(*string++ != '/0')
length +=1;

return length;
}

int main()
{
char *s = "hello";
printf("the length of the string is %d\n",strlen(s));

return 0;
}
...全文
651 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2013-03-24
  • 打赏
  • 举报
回复
我也是这种情况啊。
xiguaxue 2012-11-15
  • 打赏
  • 举报
回复
呵呵,非常感谢大家指出来的错误,现在问题解决了
xiguaxue 2012-11-15
  • 打赏
  • 举报
回复
非常感谢大家! 改过之后还是有一样的错误,fatal error LNK1169: one or more multiply defined symbols found, 要怎么改?程序如下: //#include <stdlib.h> #include <stdio.h> //typedef int size_t; int test_strlen (char * string) { int length = 0; while(*string++ != '\0') length +=1; return length; } int main() { char *s = "hello"; printf("the length of the string is %d\n",test_strlen(s)); getchar(); return 0; }
转角天边 2012-11-15
  • 打赏
  • 举报
回复
三个错误 1、函数的返回值为int,你没有写 2、'\0'写成了'/0' 3、while(*string++ != '/0')这样写会导致越界 因为++操作符的优先级比*高,指针会优先与++结合
转角天边 2012-11-15
  • 打赏
  • 举报
回复
修改如下

int strlen (char * string)
{
	int length = 0;

	while(*string != '\0')
	{
		length +=1;
		string++;
	}


	return length;
}
whizer 2012-11-15
  • 打赏
  • 举报
回复
把完整错误信息贴上来看看,一般来说是函数重复定义造成的.你把你的strlen函数名改为test_strlen试试,另外根据1楼2楼的回复做一下修改.
图灵狗 2012-11-15
  • 打赏
  • 举报
回复
用错了斜杆符号,反过来才是正确的,改为while(*string++ != '\0')。
appleyk 2012-11-15
  • 打赏
  • 举报
回复
为嘛strlen没得返回类型噻。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧