我在參考 DT_REG 的函式中使用了 <dirent.h> 頭檔案,但是,我收到錯誤訊息“'DT_REG' undeclared (first use in this function)”
代碼片段是:
DIR * dirp;
struct dirent * entry;
dirp = opendir(path);
if(entry->d_type == DT_REG) { //.... }
在我的 makefile 中,我使用了“cc -std=c11 -Wall -Werror -pedantic”。
有什么想法嗎?
uj5u.com熱心網友回復:
DT_REG不是 ISO C11 擴展的一部分。設定-std=c11嚴格僅啟用 C11 標準中定義的功能。
您可以使用功能宏來啟用其他擴展。正如readdir 手冊所述,您需要使用_DEFAULT_SOURCE宏來啟用檔案型別常量。
您可以在包含之前在源代碼中執行此操作 dirent.h
#define _DEFAULT_SOURCE
#include <dirent.h>
或通過命令列作為編譯器選項
cc -std=c11 -D_DEFAULT_SOURCE -Wall -Werror -pedantic
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/335583.html
上一篇:如何使用JavaScript將多個陣列轉換為CSV列?
下一篇:gzip檔案小于香農限制?
