簡體   English   中英

錯誤C2143:語法錯誤:缺少';' 在'類型'之前

[英]error C2143: syntax error : missing ';' before 'type'

我是編程C的新手..請告訴我這個程序有什么問題,以及為什么我收到此錯誤: 錯誤C2143:語法錯誤:缺少';' 在'類型'之前 ....

extern void func();

int main(int argc, char ** argv){
    func();
    int i=1;
    for(;i<=5; i++) {
        register int number = 7;
        printf("number is %d\n", number++);
    }
    getch();
}

Visual Studio僅支持C89。 這意味着所有變量必須在函數頂部的任何其他變量之前聲明。

編輯:@KeithThompson敦促我添加一個技術上更准確的描述(並且真正正確地指出我的方法並非如此)。 所有聲明(變量或其他任何聲明)必須位於塊中的所有語句之前。

我至少8年沒有使用visual,但似乎Visual的有限C編譯器支持不允許混合代碼和變量。 int i=1;的聲明中的錯誤行int i=1; ?? 嘗試將其移到func();的調用上方func();

另外,我會使用extern void func(void);

這個:

int i=1;
for(;i<=5; i++) {

應該用慣用語寫成:

for(int i=1; i<=5; i++) {

因為沒有必要在函數范圍內聲明for循環變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM