不同变量类型在32位和64位机器上的长度

      近日在centos下用c++/c写东西,这个程序的服务端运行在64位的centos下,程序是在32位机器上写的。其实这个是没有问题的,在编译的时候就已经决定了其所占内存的长度。如

long a = 0;
printf("size of a is %d", sizeof a);
      上述代码在32位机器上编译、在32位/64位机器上执行时,结果均为size of a is 4。

      当然,为了保证数据传输的一致性制定了一套协议,用struct实现。为了保证输出过程中,数据的完整性,特别针对系统的不同对struct里变量的类型进行了优化。为了保证内存对齐方式的一致和数据存储空间的紧凑,都用 #pragma pack(1) 指定了对齐大小。

以下是在centos_x32和centos_x64下对应的类型长度:

/*******size of types on centos_x32*****************/

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值