[英]Implicit declaration of function in recursive call C
我試圖編寫一個遞歸函數以列出所有目錄,直到輸入常規文件,但出現以下錯誤:
1.c:25:21:警告:函數'changeDirectoryAndGetFileName'的隱式聲明在C99中無效[-Wimplicit-function-declaration] if(!isFile(sf))changeDirectoryAndGetFileName(); ^
產生1條警告。 體系結構x86_64的未定義符號:“ _ changeDirectoryAndGetFileName”,引用自:1-b3c344.o中的_changeDirectoryAndGetFilename
Here is my code:
#include <stdio.h>
#include <dirent.h>
#include <sys/stat.h>
void listCurrentDirectory(){
DIR *d;
struct dirent *entry;
d = opendir(".");
while((entry=readdir(d)) != NULL)printf("%s\n", (*entry).d_name);
closedir(d);
}
int isFile(char *fname){
struct stat pstat;
stat(fname, &pstat);
return S_ISREG(pstat.st_mode);
}
char *changeDirectoryAndGetFilename(){
listCurrentDirectory();
char sf[] = "Placeholder";
scanf("%s", sf);
printf("File selected: %s\n", sf);
if(!isFile(sf)) changeDirectoryAndGetFileName();
return "d";
}
int main(int argc, char *argv[]){
if(argc != 2){
printf("code(-c) or decode(-d)\n");
return 1;
}
changeDirectoryAndGetFilename();
return 0;
}
對於架構x86_64的未定義的符號:“_changeDirectoryAndGetFileÑAME”,從引用:_changeDirectoryAndGetFileÑAME
請注意,與調用函數相比,被調用函數名稱中n
的大寫字母。 換句話說:確實定義了changeDirectoryAndGetFile n ame,但是未定義changeDirectoryAndGetFile N ame(大寫N)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.