clang 大法好

今天学习c语言的时候,写K&R书里面的一个例子,用到了strdup这个函数,书中是自己实现的,由于C语言水平有限,完全不知道这个函数。

程序里面这个函数式这样的:

char *strdup(char *s)
{
	char *p;
	p = (char *) malloc(strlen(s) + 1);
	if ( p != NULL)
		strcpy(p,s);
	return p;
}

所以写上去了之后用gcc 编译,提示是这样的:

6_5.c:81: error: conflicting types for ‘strdup’

我没意识到这个是库函数,仔细看了看,也没意识到哪出错。然后我忽然想用clang试一下。提示是这样的:

lvlv@lvlv-laptop:~/kr$ clang 6_5.c
6_5.c:81:7: warning: incompatible redeclaration of library function 'strdup'
char *strdup(char *s)
      ^
In file included from 6_5.c:2:
/usr/include/string.h:173:14: note: 'strdup' is a builtin with type 'char *(char const *)'
extern char *strdup (__const char *__s)
             ^
6_5.c:92:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
3 diagnostics generated.
差距实在是太明显了..........

clang提示的比gcc详细太多了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值