語法錯誤 : 缺少“;”(在“型別”的前面)的解決方案

鴨脖發表於2013-01-02

今天測試了一個以.c結尾的C語言程式。原始程式碼如下:

  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3.   
  4. int main(int argc, char **argv)  
  5. {  
  6.     fprintf(stdout, "Hello C\n");  
  7.     int i;  
  8.     for (i = 0; i < 10; i++)  
  9.     {  
  10.         fprintf(stdout, "%dst Hello C\n", i);  
  11.     }  
  12.     getchar();  
  13.     return 0;  
  14. }  


 

然後使用Visual Studio編譯,我了個去!!!竟然有這個錯誤:

[html] view plaincopy
  1. 1>c:\users\administrator\desktop\c_lan\c_test\c_test.c(7) : error C2143: 語法錯誤 : 缺少“;”(在“型別”的前面)  
  2. 1>c:\users\administrator\desktop\c_lan\c_test\c_test.c(8) : error C2065: “i”: 未宣告的識別符號  
  3. 1>c:\users\administrator\desktop\c_lan\c_test\c_test.c(8) : error C2065: “i”: 未宣告的識別符號  
  4. 1>c:\users\administrator\desktop\c_lan\c_test\c_test.c(8) : error C2065: “i”: 未宣告的識別符號  
  5. 1>c:\users\administrator\desktop\c_lan\c_test\c_test.c(10) : error C2065: “i”: 未宣告的識別符號  


網上找了找,有人說可以把字尾改為.cpp。我很不樂意這樣做,因為這樣違背了我的初衷了。

繼續找。很好,這個錯誤的原因終於找到了。很久以前C語言的標準規定標量要在函式開始的時候定義或者宣告。在解釋一下,我把語言中自己就代表一個變數元素的變數成為標量,把可以容納多個元素的變數成為陣列。實際上有些人把陣列稱為向量,但是向量是數學中的概念,在數學中,向量分量稱為第幾維分量,分量數用維度說明,這樣總是混淆。

在說一遍結論:在C語言裡,最好把所有的變數宣告放到計算之前,先宣告再使用,這樣就不會有這類錯誤了。

改一下的程式碼:

  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3.   
  4. int main(int argc, char **argv)  
  5. {  
  6.     int i;  
  7.     fprintf(stdout, "Hello C\n");  
  8.     for (i = 0; i < 10; i++)  
  9.     {  
  10.         fprintf(stdout, "%dst Hello C\n", i);  
  11.     }  
  12.     getchar();  
  13.     return 0;  
  14. }  


希望對給位有用啊。。。


fromhttp://blog.csdn.net/bendanban/article/details/7665076

相關文章