Linux 中函数基名的隐式声明

发布于 2024-11-29 22:27:57 字数 340 浏览 0 评论 0原文

我在代码中使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

热血少△年 2024-12-06 22:27:57

您需要包含

标准说它位于libgen.h中,kernel.org 也这样做。

You need to include <libgen.h>.

The standard says it's in libgen.h, kernel.org does so too.

玩心态 2024-12-06 22:27:57

如果您查看 man 页面中的 basename

man 3 basename

您会发现需要包含 libgen.h 才能获取 的原型>basename(以及类似的函数dirname):

#include <libgen.h>

If you look at the man page for basename:

man 3 basename

You'll see that you need to include libgen.h to get the prototype for basename (and similar function dirname):

#include <libgen.h>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文