先看一段代碼:
#include <stdio.h>
int main(int argc,char *argv[])
{
printf("argc : %d\n",argc);
int i = 0;
for(i=0;i<argc;i++)
{
printf("the num of %d argv is:%s\n",i,argv[i]);
}
return 0;
}
這段代碼很簡單,第一句先打印命令行參數個數,隨後將各個參數逐行輸出。
代碼看似沒什麼問題,然後使用VC++6.0編譯時卻報了個syntax error : missing ‘;’ before 'type’的錯誤,並且定位在 int i = 0;這一行。
後來我將int i = 0;移動到了main函數的第一行,錯誤消失,編譯成功。。。(what the fuck!)
原來,在C語言中需要把所有變量的聲明放在可執行代碼之前!!!