Re: [問卦] coding時候 if for 後面的{要不要 換行?

作者: Hatred (╮(⊙_⊙∥)╭)   2015-09-22 02:23:37
各位溫拿、勝利組、E cup、30cm、真強者、pavone、高富帥、金城武、小妹,
大家好!打給後!胎嘎後!口泥幾哇!AV8D!Ladies and gentlemen!
※ 引述《ohohohya (安安你好我草泥馬)》之銘言:
: ※ 引述《BBS5566 (加魯魯獸 o'_'o)》之銘言:
: : 各位八仙樂園的高富帥白富美30cmFcup大家好! o'_'o
: : 本加魯最近正在研究C語言
: : 雖說摸熟C語言會摸不到C罩杯 可是本加魯為了生活也只能忍惹
: : 就在本加魯輸入
: : for (i=1;i<=9;i++){
: : 之後
: : 從背後經過的室友一把抓住本加魯的肩膀並說「你的大括號沒有換行喔(笑)。」
: : 本加魯心想不換行大括號不是男人的浪漫嗎?
: : 請問各位有沒有大括號要不要換行的八卦?
: 如果是我我會建議換行
: 大掛號內的東西在C的世界內稱為scope
: 而scope內的東西完全是另一個世界
: 例如
: int main()
: {
: int a=1;
^^^^^^^^
: {
: int a=1;
: }
: }
: 這兩個整數變數a在compile後會有兩個位址在heap內
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
小魯的朋友說,他挑個小小毛病:變數a看起來好像是main函數的local
variable,應該是在stack裡面,而非heap裡面喔~
函數的local variables與呼叫函數時傳入的參數,都會塞在堆疊
(stack)裡面,為了讓被呼叫的函數執行完後,還知道要回到哪裡執
行,還要在呼叫時把return address(也就是被呼叫的函數執行完後,
下一個要執行的指令的位置)一併推到stack!
以上是本魯的朋友說的。
: 像if for while switch你可以看成條件若有達成則執行底下的scope
: 因此上述這些函式在應用時可以直接寫成
: if(a==0)
: function();
: for(a=0;a<=b;a++)
: function();
: 之類的而不用加{}
: 因此scope的應用還有一種如
: char function(char *p)
: {
: blablabla.......
: }
: char string[10]
: {
: function();
: }
: 意思就是將function的執行結果放入字元陣列string中
: 有了scope的概念後程式可以變得非常靈活 提供你做參考
作者: s00099z (死酒)   2015-09-22 02:24:00
........有完沒完
作者: lturtsamuel (港都都教授)   2015-09-22 02:24:00
我都交給compiler去煩惱
作者: ohohohya (安安你好我草泥馬)   2015-09-22 02:25:00
已更正 sorry
作者: DarkIllusion (′・ω・‵)   2015-09-22 02:26:00
你沒有朋友 你朋友就是你
作者: Greedyman (拒吃冷凍蔬菜)   2015-09-22 02:32:00
二樓怎麼不回前一篇了
作者: iq1000x (台串彭于晏)   2015-09-22 02:33:00
為什麼傑特們後面沒s 雷蒂斯就有
作者: Greedyman (拒吃冷凍蔬菜)   2015-09-22 02:36:00
樓上重讀小學 再來上ptt
作者: ohohohya (安安你好我草泥馬)   2015-09-22 02:36:00
因為gentleman的複數是gentlemen 是要加什麼S
作者: ymcg (一等士官長>>>)))   2015-09-22 02:37:00
什麼是越位
作者: a5091300 (穩潔海苔~*)   2015-09-22 02:48:00
幹還好我學過記概不然還真看不懂在寫三小
作者: ohohohya (安安你好我草泥馬)   2015-09-22 06:33:00
學過記概就看的懂這是三小 當我們發文的都是王八蛋就是

Links booklink

Contact Us: admin [ a t ] ucptt.com