2012-11-11 40 views
0

單挑,這是一個班級任務,因此,你知道,學術上的誠實和什麼。'int32_t'之前的預期說明符 - 限定詞列表

我有這樣定義的結構:

typdef struct { 
    int32_t r[8]; 
    Seq_T m; 
    Seq_T lengths; 
    int32_t ctr; 
} UM_T; 

一切都被編譯罰款,包括執行,直到我添加了一個客戶端:

#include "um.h" 

int main(int argv, char* argc[]){              
    FILE* file = fopen(argc[1]);              
    UM_T* um = UM_new (file);               
    run(um);                   
}; 

現在,編譯器(GCC)告訴我:

um.h:5: error: expected specifier-qualifier-list before 'int32_t' 

我會有一些想法,如果int32_t是一個結構或者我已經定義的東西,但顯然情況並非如此。有任何想法嗎?

+6

'#包括'所以編譯器知道類型。 –

回答

1
FILE* file = fopen(argc[1]); 

fopen函數有兩個參數,但你只傳遞一個參數。

然後:

run(um); 
}; 

^ 

您必須刪除後;

而且還一定要包括stdio.hfopenstdintint32_t類型。

最後:

int main(int argv, char* argc[]) 

你可能是指:

int main(int argc, char *argv[]) 

,以免混淆。

那麼當然,您將不得不在fopen調用中使用argv[1]而不是argc[1]

+0

關於最後的評論,OP使用'argc [1]',所以至少這是一致的(儘管當然不應該這樣做)。 –

+0

@DanielFischer是的,我應該補充一點,他也必須修復'fopen'。 – ouah

+0

啊,明白了。謝謝。 – codex1962

1
FILE *fopen(const char *path, const char *mode); 

以上是fopen()。它的聲明需要兩個參數,但你逝去的 只有一個。

它會給你錯誤消息:

too few arguments to function ‘fopen’ 

以及在結構使用的是int32_t所以包括或<sys/types.h>

相關問題