PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] C的local variable初始化為什麼要無定義?
作者:
OoShiunoO
(機機勳)
2017-04-30 21:32:17
請問一下,在C語言中
局部變量若沒顯式定義的話,他不會像全域變量一樣預設0
這樣設計的理由是什麼呢?
以前我都不會理這個問題,只是最近在學計組和compiler
突然覺得需要搞懂~
作者:
james732
(好人超)
2017-04-30 22:52:00
藉機問一下,.bss的變數有保證會初始為0嗎?
作者:
descent
(「雄辯是銀,沉默是金」)
2017-04-30 23:08:00
https://goo.gl/oRNoHi
6.7.8 看來是 c 標準的規定
作者:
b0920075
(Void)
2017-05-01 03:15:00
Linux下.bss段就是給這個segment一個zeroed pages所以一定會是0八
作者:
CoNsTaR
((const *))
2017-05-01 03:58:00
變量…
作者:
LPH66
(-6.2598534e+18f)
2017-05-01 09:12:00
只宣告那編譯器只要劃空間過去就好, 不用多一道指令搬資料
作者:
ronin728
(浪人)
2017-05-01 09:22:00
因為C有可能會使用Stack存放變數,所以會讀到之前的資料如果不這樣,那就表示每次都要隱式清理,估計是效能考量
作者:
james732
(好人超)
2017-05-01 10:56:00
stack的處理方式比bss麻煩多了,每個function都要清
作者:
LenaPark
2017-05-01 15:13:00
因為效率從84頁開始看,或從頭看完.
https://goo.gl/GMJ1DS
作者:
Killercat
(殺人貓™)
2017-05-04 08:15:00
有個更有趣的事實,大多數編譯器debug下會做相反的事情寫入一個特定數以方便debug不過這個特定數一定不是0就是 XD
作者:
tinlans
( )
2017-05-05 21:40:00
少數 MCU 廠會要求不要把 bss 清 0 XD
作者:
james732
(好人超)
2017-05-05 21:53:00
什麼,不把bss清0有什麼好處嗎?
作者:
Killercat
(殺人貓™)
2017-05-06 10:11:00
之前寫kernel lib有use case,該app是拿來dump的而dump可以直接把記憶體宣告到特定位置上 不清空就可以免去一次copy的時間,不知道上面提的MCU是不是類似case
繼續閱讀
[問題] (C++)關於template separation compilation model
xie29
Re: [問題]C++ Destuctor跟Delete
yilanP
[問題] socket server 接不到 client 的訊息
timmy852111
[問題] 大數階乘運算
jellyfishuan
[問題] Leetcode 110 Balanced Binary Tree
PPTHS
[問題] code::blocks下編譯dll遇到問題
icetofux
[問題] 進階project 練習
groot3
[問題] trace code 到底該怎麼練?
henry8168
[問題] qt 初始化畫面問題
MOONY135
[問題] VC2015
max853211
Links
booklink
Contact Us: admin [ a t ] ucptt.com