1. 程式人生 > >編譯錯誤syntax error : missing ';' before 'type'原因探尋

編譯錯誤syntax error : missing ';' before 'type'原因探尋

 

在VC6中執行以下程式碼
////////////////////////////////
//main.c

#include <stdio.h>

int main()
{
 char a[100];
 memset(&a, 0, 100);
 char b;

 return 0;
}

/////////////////////////////////
編譯器將會報一個編譯錯誤,
syntax error : missing ';' before 'type'
這個錯誤出在

char b;

這一行。
然後將程式改為
////////////////////////////////
//main.c

#include <stdio.h>

int main()
{
 char a[100];
 char b;
 memset(&a, 0, 100);

 return 0;
}

/////////////////////////////////

程式就會順利通過編譯。

經過測試發現
在VC中編譯c程式,在一個大括號括起的範圍內,如果變數宣告放在了函式呼叫的後面,那麼編譯的時候就會報錯:
syntax error : missing ';' before 'type'

然後你可以修改為把變數宣告放在函式呼叫之前。就會順利通過編譯。

這個問題在vc編譯c++程式,或者gcc編譯c程式的時候都不會出現,僅僅在vc編譯c程式的時候才會出現.