验证:cygwin中c++常用基本类型的字节大小

本文记录了在Cygwin环境下,验证C++基本类型如long等的数据类型所占用的字节数。通过编译运行程序得出结论:在C++标准中,long在32位系统占4个字节,64位系统占8个字节,而Windows VC环境中long始终为4字节。
摘要由CSDN通过智能技术生成

有时候,总想验证一些奇怪的想法,干脆就写下来,以备后查。

想法:cygwin中c++常用基本类型的字节大小

// 函数功能: 测试c++基本类型 
// 备    注: 占用空间大小等

void TestCase_BaseTypeSize()
{
#ifndef __x86_64
    printf("running with x86. \n");
#else
    printf("running with x64. \n");
#endif
 
    printf("---------------- c basic type size ---------------- \n");
    printf("sizeof(bool)        =   %d \n", sizeof(bool));    // 1
    printf("sizeof(int)         =   %d \n", sizeof(int));     // 4
    printf("sizeof(char)        =   %d \n", sizeof(char));    // 1
    printf("sizeof(short)       =   %d \n", sizeof(short));   // 2
    printf("sizeof(long)        =   %d \n", sizeof(long));    // 4(x86) 8(x64)
    printf("sizeof(float)       =   %d \n", sizeof(float));   // 4
    printf("sizeof(double)      =   %d \n", sizeof(double));  // 8
    printf("sizeof(wchar_t)     =   %d \n", sizeof(wchar_t)); // 2
    printf("sizeof(int*)        =   %d \n", sizeof(int*));    // 4(x86) 8(x64)
    printf("sizeof(char*)       =   %d \n", sizeof(char*));   // 4(x86) 8(x64)
    
    printf("---------------- extended type size ---------------- \n");
 
    char *pChar = NULL;
    printf("pChar+1             =   %d \n", pChar+1);         // 1
 
    int *pInt = NULL;
    printf("pInt+1              =   %d \n", pInt+1);          // 4
 
    double *pDouble = NULL;
    printf("pDouble+1           =   %d \n", pDouble+1);       // 8
 
    printf("---------------- extended type size ---------------- \n");
 
    printf("sizeof(time_t)               =   %d \n", sizeof(time_t));            // 4(x86) 8(x64)
}

编译:g++ main.cpp -o x64.exe

执行结果:

running with x64.
---------------- c basic type size ----------------
sizeof(bool)        =   1
sizeof(int)         =   4
sizeof(char)        =   1
sizeof(short)       =   2
sizeof(long)        =   8
sizeof(float)       =   4
sizeof(double)      =   8
sizeof(wchar_t)     =   2
sizeof(int*)        =   8
sizeof(char*)       =   8
---------------- extended type size ----------------
pChar+1             =   1
pInt+1              =   4
pDouble+1           =   8
---------------- extended type size ----------------
sizeof(time_t)               =   8

结论:在标准c\c++中long在32位系统占4个字节,在64位系统占8个字节,但在windows的VC中long始终占4字节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值