1. 程式人生 > 實用技巧 >不同編譯器下C++基本資料型別的位元組長度

不同編譯器下C++基本資料型別的位元組長度

位元(bit),即一個二進位制位 ,例如100011就是6位元;
位元組(byte),是計算機中資料型別最基本的單位,8bit組成1byte;1024byte組成1KB。

short(短整型),佔2byte即16位,兩個位元組。
int(整型),佔4byte即32位,一個int型資料的長度用4個位元組來儲存。
float(浮點型)佔4byte即32位。
double(雙精度浮點型)佔8byte即64位。

#include <stdio.h>

int main() 
{
    printf("sizeof( char ): %zd\n", sizeof(char));
    printf("sizeof( short int ): %zd\n", sizeof(short int));
    printf("sizeof( int ): %zd\n", sizeof(int));
    printf("sizeof( float ): %zd\n", sizeof(float));
    printf("sizeof( long int ): %zd\n", sizeof(long int));
    printf("sizeof( long long int ): %zd\n", sizeof(long long int));
    printf("sizeof( double ): %zd\n", sizeof(double));
    printf("sizeof( long double ): %zd\n", sizeof(long double));
    printf("sizeof( size_t ): %zd\n", sizeof(size_t)); //long unsigned int
    printf("sizeof( void* ): %zd\n\n", sizeof(void*));

    return 0;
}

64位centos7 gcc -m32

sizeof( char ): 1
sizeof( short int ): 2
sizeof( int ): 4
sizeof( float ): 4
sizeof( long int ): 4
sizeof( long long int ): 8
sizeof( double ): 8
sizeof( long double ): 12
sizeof( size_t ): 4
sizeof( void* ): 4

64位centos7 gcc

sizeof( char ): 1
sizeof( short int ): 2
sizeof( int ): 4
sizeof( float ): 4
sizeof( long int ): 8
sizeof( long long int ): 8
sizeof( double ): 8
sizeof( long double ): 16
sizeof( size_t ): 8
sizeof( void* ): 8

64位win10 vs Debug x86

sizeof( char ): 1
sizeof( short int ): 2
sizeof( int ): 4
sizeof( float ): 4
sizeof( long int ): 4
sizeof( long long int ): 8
sizeof( double ): 8
sizeof( long double ): 8
sizeof( size_t ): 4
sizeof( void* ): 4

64位win10 vs Debug x64

sizeof( char ): 1
sizeof( short int ): 2
sizeof( int ): 4
sizeof( float ): 4
sizeof( long int ): 4
sizeof( long long int ): 8
sizeof( double ): 8
sizeof( long double ): 8
sizeof( size_t ): 8
sizeof( void* ): 8