2012-07-18 24 views
2

Coding Guidelines for Cocoa寫着:我將全局變量/靜態變量明確初始化爲0/NO/nil有什麼好處?

您應該初始化靜態變量,以確保它們合併 到__DATA段的__data部分而不是在__bss 部分。如果沒有明顯的值用於初始化,請使用 0,NULL,0.0或其他適當的值。

這是否意味着__bss與__DATA相比在某種意義上是不好的?但在我的理解中,__bss適用於較小的二進制可執行文件。有任何想法嗎?

回答

1

__bss存儲未初始化的數據,而__data存儲手動初始化的變量。當程序加載時,程序加載器必須初始化__bss,這需要一些額外的時間,而__data的變量按原樣加載。

+0

我想__bss部分在可執行文件中記錄爲(start_address,length)對,並通過CPU指令清零。所以我不明白爲什麼它需要比從輔助存儲器加載相同數量的字節到主存儲器更長的時間,就像__DATA的情況一樣。 – 2012-07-19 00:29:49