鍍金池/ 問答/C++/ 初學(xué)C++ 請問short類型所占內(nèi)存一定比int類型所占內(nèi)存小嗎?

初學(xué)C++ 請問short類型所占內(nèi)存一定比int類型所占內(nèi)存小嗎?

書中說“如果short比int小, 則使用short可以節(jié)省內(nèi)存”
不理解“如果short比int小”
C++規(guī)定 short至少16位 int至少和short一樣長
那什么情況下short會比int大?

回答
編輯回答
小眼睛

short不會比int大

2017年4月28日 22:03
編輯回答
毀憶

同一套編譯環(huán)境,確實short 類型不會大于int

2017年11月3日 20:37
編輯回答
離觴

如果在所有的系統(tǒng)中,每種類型的寬度都相同,使用起來將非常方便,比如 short 總是 16 位, int 總是 32 位等等;但生活并沒有那么簡單,你的 C++ 代碼有可能運行在不同的終端,比如32位機器、64位機器,甚至有可能運行在古老的單片機等等,這些不同的環(huán)境下 CPU 的字長是不一樣的。

附參考文章:C++那些細(xì)節(jié)--32位64位數(shù)據(jù)類型的區(qū)別

所以為了盡可能的適應(yīng)不同的硬件環(huán)境,C++ 提供了一種靈活的標(biāo)準(zhǔn),好讓你的代碼具有更好的可遷移性:

  • short 至少 16 位
  • int至少與 short 一樣長;
  • long 至少 32 位,且至少與 int 一樣長
  • long long 至少 64 位,且至少和 long 一樣長

由于是 C++ 的規(guī)范標(biāo)準(zhǔn),所以只要你使用的是符合 C++ 規(guī)范的編譯器,那么 “short 要比 int 節(jié)省內(nèi)存” 是必然的。

2018年1月16日 09:26
編輯回答
嫑吢丕

就是說不同編譯器在細(xì)節(jié)上可能會有所區(qū)別

2017年4月12日 05:45