linux恶心的宽字符

在windos平台wchar_t是2个字节,可以正好存放一个unicode字符,可是linux平台的wchar_t却是4个字节,导致windows平台和linux平台之间数据传递的时候可能会出现数据覆盖,加入windows平台定义了一个结构体,里面某个字段是WCHAR类型的数组,然后把头文件移动到linux平台编译,如果不重定义WCHAR会编译不通过,但是重定义WCHAR为short的话,linux平台的宽字符串操作因为一个字符占4个字节会覆盖其他字段,如果重定义WCHAR为wchar_t,会导致结构体大小不一致,还是有问题。好恶心。

为了让linux平台也能和windows通用宽字符,不得不重新写一套针对重定义的WCHAR的字符串操作。

要想规避上述问题,可以把结构体中的宽字符数组申请的时候可以申请大一倍,或者设置编译选项,听说过可以设置一些编译选项,但是目前还不清楚

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值