我最近在辦公室參加的編碼風格演示文稿提出,變量在定義時不應分配(默認值)。相反,它們應該在使用之前被分配一個默認值。 所以,像同時定義和分配的變量
應該皺起了眉頭。
顯然,「INT」的例子是簡單的,但相同的如下的其它類型也一樣指針等
此外,也有人提到,C99兼容的編譯器現在嘔吐提到在上述警告案件。
上述方法對我來說只對結構有用,即只在使用前將它們memset。如果僅在錯誤分支中使用(或填充)結構,這將是有效的。
對於所有其他情況,我發現定義和我也遇到了很多,因爲未初始化指針錯誤的分配到默認值的審慎演習都在編寫和維護的代碼。此外,我相信C++通過構造函數也提倡相同的方法,即定義和分配。
我想知道爲什麼(如果)C99標準不喜歡定義&分配。他們在編碼風格演示所倡導的方面有什麼可觀的優點?
當你說detect時,你的意思是編譯器將它標記爲Warning,對吧?我還沒有看到編譯器因爲未初始化的變量而拒絕編譯。 – 2009-06-11 07:01:54
如果這取決於我,這將是一個致命的錯誤,但C是它的語言,警告可能是唯一適當的迴應。 但是,嘿。一個被賦值爲默認值的變量(即使它不應該)也不會產生任何警告。 – 2009-06-11 07:24:13