LinuxSir.cn,穿越时空的Linuxsir!

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

strndup的一个警告信息

[复制链接]
发表于 2006-4-6 00:35:23 | 显示全部楼层 |阅读模式

  1. /* test.c */
  2. #include <stdio.h>
  3. #include <string.h>
  4. int main()
  5. {
  6.         char str[12]="sdfASDF";
  7.         char *p=strndup(str, sizeof(str));
  8.         printf("%s\n",str);
  9.         printf("%s\n",p);
  10.         free(p);
  11.         return 0;
  12. }
复制代码


编译信息:
$ gcc test.c
test.c: 在函数 ‘main’ 中:
test:7: 警告:隐式声明与内建函数 ‘strndup’ 不兼容(英文是incompatible implicit declaration of built-in function 'strndup'. )

这个warning老是无法去除,不知怎么回事? 虽然没有大碍,不过总觉得像个苍蝇:confused:
发表于 2006-4-6 01:20:08 | 显示全部楼层
#define _GNU_SOURCE
没有这个的话头文件里不会包括strndup的原型
于是就会使用gcc内建版本
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-6 09:49:26 | 显示全部楼层
谢谢。把 #define _GNU_SOURCE 放在#include <string.h>前就好了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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