终端说这是这一行的警告:
warning: assignment from incompatible pointer type [enabled by default]
while ((dirzeiger=readdir(dir)) != NULL)
我找不到错误...
void ls () {
struct dirent {
long d_ino;
unsigned short d_reclen;
unsigned short d_namlen;
char *d_name;
};
DIR *dir;
struct dirent *dirzeiger;
if ((dir =opendir("/home/Bernardinho/Schreibtisch")) != NULL)
while ((dirzeiger=readdir(dir)) != NULL)
printf("%s\n",(*dirzeiger).d_name);
}
int main( int argc, char* argv) {
ls();
return 0;
}
最佳答案
如@Mr.32 所述,您忘记包含必要的头文件。此外,您似乎重新定义了结构dirent
。因此,readdir
认为的 dirent
与您的 dirent
不同,并且指针不兼容。
关于c - 警告 : assignment from incompatible pointer type [enabled by default],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25263994/