我是C
的新手,我开始学习头文件。虽然使用我的标题,但我收到一个错误,说invalid type argument of '->' (have struct dirent)
。我不明白这是什么意思,我读here,第二个参数->
必须是一个指针,所以我试图给它添加一个*
(ent->*d_name)
但是然后我得到错误意外的令牌*
,我该如何解决这个问题?这个头文件有什么问题?
#ifndef UTILIS_H_INCLUDED
#define UTILIS_H_INCLUDED "utilis.h"
#include <stdio.h>
#include <dirent.h>
char *connect(const char *pattern)
{
struct dirent ent;
char *d_name;
DIR *mgt = opendir("\\\\example\\windows7apps");
while ((ent = readdir(mgt)) != pattern)
{
puts(ent->d_name);
}
}
#endif
你可能想读例如[这个'readdir'手册页](http://man7.org/linux/man-pages/man3/readdir.3.html)。 'readdir'返回什么? 'ent'的类型是什么? –
如果这是一个头,你绝对不希望整个函数定义在这里。将其移动到.c文件或将其标记为“inline”。 – DeiDei
@DeiDei什么是'inline'? – jakehimton