在標準
c中規定變數定義必須放在所有的執行語句之前!一旦在執行語句之間再有定義的話,會報錯誤!
見以下式例:
#include
#include
int main()
把上述**放到命名為
test.c
的檔案中(
vc 6.0呼叫c
編譯器),編譯。出現編譯錯誤:
d:/project/c++/test/1.c(12) : error c2143: syntax error : missing ';' before 'type'
d:/project/c++/test/1.c(14) : error c2065: 'char2' : undeclared identifier
這就是因為在上述**中
char char2=char1+32;
的定義放在了執行語句
printf("
大寫字元
=%c的
ascii
碼=%d/n",char1,char1);
的後面導致的;一旦把上述同樣的語句放到了
.cpp
檔案中(
vc 6.0
呼叫c++
編譯器),編譯沒有問題,這是因為編譯器認為上述**是
c++語法格式的,在
c++中沒有嚴格要求變數定義一定要放在執行語句之前。
如果在.c
檔案中執行上述**的話,可以在編譯器設定用
c++編譯!在.c
檔案中(c)
正確的**為:
#include
#include
int main()
這其實是
c 標準的問題
,c89
不允許變數宣告和執行語句混合寫
,c99
允許,c++
也允許,
gcc
有很多擴充套件的功能。
c語言 關於指標注意事項
使用指標變數作為函式引數時,只有在獲取位址的情況下對元素 p 進行操作,才能真正地修改變數。因為此時實參傳給形參,就是將堆上的申請的首位址傳給形參,這樣形參和實參都指向了堆上的記憶體,形參對堆上記憶體內容的修改,實參也是得到了修改。但是對傳入位址 p 進行操作是無法對原指標本身進行修改的。因為函式在...
C語言注意事項
1 fgetc與fputc函式 fgetc函式從指定的文 件中讀乙個位元組 fputc 函式向指定的檔案寫乙個位元組 2 r 是回車,n 是換行,前者使游標到行首,後者使游標下移一格。c語言程式設計時 windows系統 r 就是return 回到 本行 行首 這就會把這一行以前的輸出 覆蓋掉 如 ...
C語言注意事項
一 關於typedef與 define的相似之處 例如 typedef int count define count int 作用 都是用count代表int,但事實上,二者是不同的。define是在預編譯時處理的,只能作簡單的字串替換,而typedef是在編譯時處理的,並不是作簡單的字串替換,而是...