※ 引述《enjoydance.bbs@bbs.ntnu.edu.tw (苦力國標魔羯男)》之銘言:
> ※ 引述《journeyman@kkcity.com.tw (#班布,我命令你,馬上停止)》之銘言:
> > 因為CPU的通用暫存器就是這麼寬
> > 如果你的compiler有針對64-bit設計就會
> >
> 樓上的答案錯誤吧...@@...
> int 32 bits 並不是因為CPU的通用暫存器的緣故..
> 而是程式的定義就是設定成一個整數的數值範圍可以有2的32位元..
> 改成64位元的CPU並不會改變int的定義長度...@@
他其實也沒說錯,
通常 C compiler 決定 int 的大小,
會選擇 CPU 多數指令裡一次就能處理掉的 data size,
通常跟 CPU 的 register 寬度有關,
但是不是絕對。
如果真的要「絕對正確」的答案,
那只能說是看寫 C compiler 的人爽而已,
也因為這樣 C 才會有 sizeof 這種 operator,
避免 programmer 直接用寫死的數字做判斷,
奇怪的是很多人還是熱愛那些 magic number。
--
Name: Tseng, Ling-hua E-mail Address: uranus@it.muds.net
School: National Tsing Hua University Department: Computer Science
Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design
Researching: Undecided
Homepage: https://it.muds.net/~uranus
--
╔═══╗ ┼────────────────────────╮
║狂狷 ║ │* Origin:[ 狂 狷 年 少 ] whshs.cs.nccu.edu.tw ╰─╮
║ 年少║ ┼╮ < IP:140.119.164.16 > ╰─╮
╚╦═╦╝ ╰ * From:61-230-223-145.dynamic.hinet.net
─╨─╨─ KGBBS ─ ◎ 遨翔"BBS"的狂狷不馴;屬於年少的輕狂色彩 ◎