無論我在哪裏包含某個commands.h
頭文件,除了commands.c
之外的任何地方,編譯器都會拋出此錯誤。 commands.h
包含函數原型,其利用在instrument.h
定義結構的,特別是:預期的聲明說明符或'...'在'MLD_PACKET'之前
void readConfig(PSTATPLUS_CONFIG* pStatConfig_p, MLD_PACKET* rxPacketUart2_p);
void readState(PSTATPLUS_STATE* pStatState_p, MLD_PACKET* rxPacketUart2_p);
void writeConfig(PSTATPLUS_CONFIG* pStatConfig_p, MLD_PACKET* rxPacketUart2_p);
void writeState(PSTATPLUS_STATE* pStatState_p, MLD_PACKET* rxPacketUart2_p);
PSTATPLUS_CONFIG
和PSTATPLUS_STATE
被定義爲這樣,在instrument.h
:
typedef struct {
float signalAmplitude; // Signal Amplitude
float signalOffset; // Signal Offset
unsigned char waveType; // Waveform Type
float startFreq; // Frequency Start
float stopFreq; // Frequency Stop
unsigned int numIncrements; // Number of Increments
unsigned char scale; // Linear(0) or log(1)
float stepDelay; // Step Delay
}PSTATPLUS_CONFIG;
typedef struct { // Current biosensor status
unsigned char scan; // Scan status (on/off)
unsigned char sample; // Sample status (on/off)
unsigned int currentIncrement; // Current scan increment
unsigned char gain; // Current gain setting
float iValue; // I voltage
float qValue; // Q voltage
unsigned int sampleDivider; // 1 takes every ADC sample, 2 takes every 2nd ADC sample, 3 takes every 3rd ADC samp... n takes every nth. 0 stops data collection.
unsigned int totalSamples; // total number of samples wanted to complete one measurement.
}PSTATPLUS_STATE;
我需要寫在commands.h
頭某些定義可以訪問我的instrument.c
文件,但如前所述,每次我在其中包含commands.h
時,編譯器都會產生該錯誤。我試過在其他一些源文件中包含commands.h
,同樣的事情一直在發生。任何幫助表示讚賞。
丹
定義MLD_PACKET在哪裏? – doctorlove
看起來你需要在你的'commands.h'中聲明'MLD_PACKET'的地方,或者有一個前向聲明。 –