我正在寫一個c項目,我試圖保留在相關的.h文件中的所有結構聲明。這允許我通過包含相關頭文件在任何.c文件中使用它們。 我也避免將我的項目的頭文件包含在其他頭文件中。我想這會讓代碼更易於閱讀和維護。當struct在另一個文件中聲明時如何使用struct作爲函數的參數?
我的問題是如何避免在頭文件中包含使用該結構的頭文件中包含結構聲明的頭文件。有沒有辦法做到這一點? (我沒有找到答案,對不起,如果它重複)。 這裏是一個片段:
cmd.c
#include "cmd.h"
#include "params.h" //This allows usage of struct testPars
void move_parameters(struct testPars *testP) {
...
}
cmd.h
#ifndef CMD_H
#define CMD_H
#include "params.h" //I want to avoid this include in this file
void move_parameters(struct testPars *testP) ;
#endif
params.h
#ifndef PARAMS_H
#define PARAMS_H
struct testPars {
char name[16];
double value;
};
#endif
您可以在cmd.h中寫入前向聲明'struct testPars;'而不是include。 – mch
這很無意義。只需包含包含結構定義的頭文件即可。 –