[問題] C variable declaration

看板C_and_CPP作者 (兄弟霸業)時間14年前 (2010/06/24 03:36), 編輯推噓5(504)
留言9則, 8人參與, 最新討論串1/1
痾...這問題好像很簡單 不過得到的答案只是說因為compiler的關係 在寫C時 比如有一個i是integer 就會寫int i; 為什麼有些宣告沒打在function的一開始的地方就會錯勒? ex: int main() { int i = 0; printf("%d\n",i); int j = 0; printf("%d\n",j); return 0; } 有些compiler會說認不到 j (._.?) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.190.206

06/24 03:37, , 1F
ps. 我不知道那compiler的版本...
06/24 03:37, 1F

06/24 03:41, , 2F
gcc沒這問題 msvc就有 所以推測是C89的問題
06/24 03:41, 2F

06/24 04:13, , 3F
C99之前確實有規定變數宣告必須在function的最前面
06/24 04:13, 3F

06/24 04:18, , 4F
compiler支援度的問題
06/24 04:18, 4F

06/24 04:34, , 5F
不支援C99的關係吧?
06/24 04:34, 5F

06/24 07:39, , 6F
C99才支援半路宣告變數的做法
06/24 07:39, 6F

06/24 09:35, , 7F
印象中是 {} block的頭, 不一定是要funcion的頭@_@"
06/24 09:35, 7F

06/24 10:36, , 8F
謝謝各位的解釋!!
06/24 10:36, 8F

06/24 23:32, , 9F
或者你叫編譯器用C++的規則去編譯就不會有位置限制的問題
06/24 23:32, 9F
文章代碼(AID): #1C8c8fp3 (C_and_CPP)