c語言關於for()的疑惑

 今天才知道for的標準變化
奶奶的 換了一個平臺才能發現這些問題啊

在kdevelop下寫
for(int i=0;i<9;i++)
{
}
居然會報錯
 error: 'for' loop initial declaration used outside C99 mode

原來c99標準裏才支持在for的初始化部分定義一個或多個變量,這些變量的作用域僅於本for語句所控制的循環體內。
http://hi.baidu.com/johnllon/blog/item/8b03414e00fc9aced1c86a94.html

但是我一開始就迷了
爲什麼以上代碼在vc6.0裏可以通過呢
vc6.0不是隻支持c89標準嗎
按理應該報錯syntax error : missing ';' before 'type'

原來大部分情況下我們建的源文件是cpp格式
其實是被當作c++代碼編譯了
c++裏支持在for的初始化部分定義一個或多個變量,這些變量的作用域僅於本for語句所控制的循環體內。應該是c99參考了c++才那麼規定的



奶奶的 看來還是c89吃香啊
爲了兼容性 還是堅持c89吧
工業標準不是說變就立刻變得過來的
發佈了29 篇原創文章 · 獲贊 2 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章