程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++的一些字節問題

C++的一些字節問題

編輯:C++入門知識

c++ class中成員函數,static變量在編譯時都不會被分配內存,只有實實在在的int,char,long,float,double等類型才會被分配內存,並且以當前字節長度最大
的類型來成倍分配內存,而虛函數同理也不會被分配內存,無論聲明多少個虛函數都如此,但是類中會存放一個虛指針,指向虛函數表,該虛函數表存放在內存中,
跟類地址無關的一個地址中,所以在計算class的sizeof的時候,成員函數、static變量,虛函數都不會被計算大小,只會計算int,char,long,float,double等類型加虛指針
的大小,在32位機器中,指針大小4個字節,而在64位機器中,指針大小8個字節,但是int在32位和64位機器下都是4個字節大小,下面附常用數據類型及對應字節數


32位編譯器:                                                                                        64位編譯器:
      char :1個字節                   1個字節
      char*(即指針變量): 4個字節(32位的尋址空間是2^32, 即32個bit,也就是4個字節。同理64位編譯器)8個字節
      short int : 2個字節 2個字節
      int:  4個字節 4個字節

      unsigned int : 4個字節 4個字節
      float:  4個字節 4個字節
      double:   8個字節 8個字節
      long:   4個字節 8個字節
      long long:  8個字節 8個字節
      unsigned long:  4個字節 8個字節

假若class為空,則分配的字節大小為1,表示該class的存在

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved