推 askacis: 這樣的變數會被放到BSS Section,所以如果系統初始沒有 05/12 11:02
→ askacis: 把BSS section清0,自然就會是亂數,寫MCU沒有OS,所以 05/12 11:02
→ askacis: 要靠自己把BSS section清0,Linux的話會給zero pages 05/12 11:04
推 loveflames: BSS是linux特有,windows沒有這個section 05/12 11:04
推 askacis: 因為板主拿MCU當例子,現在多數主流MCU IDE都跑ELF格式~ 05/12 11:17
→ HolyBugTw: 有個問題,如果char str[10], 後面用了strcpy去填值 05/12 12:03
推 askacis: 當然我對Windows不熟,不過翻了一下PE的規格書,似乎也是 05/12 12:03
→ HolyBugTw: 那str有沒有事先memset有差嗎?我是會要求還是得作 05/12 12:03
→ descent: bss 在 dos 時代也有, 怎麼會是 linux 特有, 05/12 12:29
→ descent: 可以反組譯看 asm 檔案, 即可確認 bss 的存在。 05/12 12:29
推 loveflames: dos有我倒是不知道,windows的PE沒有就是 05/12 12:33
推 loveflames: 以前怎麼試都沒有BSS section,不知道是不是編譯器問 05/12 14:34
→ loveflames: 題 05/12 14:34
※ 編輯: wtchen (90.41.214.44), 05/12/2016 17:41:08
→ wtchen: char str 如果後面用strcpy給值那有沒設0應該沒差 05/12 17:43
→ wtchen: 不過C99後char可以設初值不用memset 05/12 17:43
推 johnjohnlin: 可以順便加入不同初始的意義嗎? 05/12 17:43
→ wtchen: 板工不清楚MCU的狀況,了解的大概就跟askcis差不多 05/12 17:44
→ johnjohnlin: 像是 zero, value, default 之類的? 05/12 17:44
→ wtchen: 不同初始的意義是指? 05/12 17:47
→ wtchen: OS怎麼處理的嗎?那要另外寫補充資料 05/12 17:47
→ wtchen: 板工只熟Linux....Win系列要有人寫 05/12 17:47
→ wtchen: 像是 zero, value, default 之類的? 不懂... 05/12 17:54
※ 編輯: wtchen (86.209.153.222), 05/12/2016 19:23:11
※ 編輯: wtchen (86.209.153.222), 05/13/2016 16:11:46
推 LPH66: en.cppreference.com/w/cpp/language/initialization 05/13 20:08
→ LPH66: johnjohnlin 講的是這裡面列的那六種吧 05/13 20:08
→ wtchen: 這要另外寫一篇.... 05/13 20:13
→ wtchen: 板上有高手要寫嗎?我預計要寫的文章差不多快排到年底了 05/13 22:12