我是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