可能有些愚蠢我不知道但是,为什么我会收到这个警告?
static void foo(char *path) {
char *bname;
char *path2 = strdup(path);
bname = basename(path2);
(带有basename()调用的行):warning:赋值来自整数而没有强制转换的指针
事实上,如果我改变这一点,警告就会消失:
bname = (char *)basename(path2);
man 3 basename告诉我:
char *basename(char *path);
Both dirname() and basename() return pointers to null-terminated strings.
是什么给出了?
答案 0 :(得分:13)
否定。它适用于我。你确定包含了正确的标题吗?
#include <string.h>
#include <libgen.h>
static void foo(char *path) {
char *bname;
char *path2 = strdup(path);
bname = basename(path2);
}
您能否告诉我们有关您的编译环境的更多信息?