Linux 中函数基名的隐式声明
我在代码中使用 basename() 函数。 在我包含的地方
#include <unistd.h>
,当我使用 -Wall 标志编译该代码时,
它会显示以下警告
warning: implicit declaration of function ‘basename’
如果我在代码中编写其声明,
char * basename (const char *fname);
,那么它不会显示该警告
为什么会发生这种情况。
i am using basename() function in my code.
Where i am including
#include <unistd.h>
and when i m compiling that code with -Wall flag it shows
following warning
warning: implicit declaration of function ‘basename’
if i am writing its declaration in my code
char * basename (const char *fname);
then it does not show that warning
why this happening.?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要包含
。标准说它位于
libgen.h
中,kernel.org 也这样做。You need to include
<libgen.h>
.The standard says it's in
libgen.h
, kernel.org does so too.如果您查看
man
页面中的basename
:您会发现需要包含
libgen.h
才能获取的原型>basename
(以及类似的函数dirname
):If you look at the
man
page forbasename
:You'll see that you need to include
libgen.h
to get the prototype forbasename
(and similar functiondirname
):