64位linux中long和int之间的转换

xjp213 2014-05-23 08:21:43
强制转换不是不可以,只是我在Makefile中加了编译选项,是不允许强制转换的
现在唯一想到的办法就是用位运算
我大概是这样写的
long s = 123;
int i = 0xffffffff ;
int j = i & s; //这里的s得看机器的大端法还是小端法,必要的时候需要移位

但这样写还是不行 int j = i & s; 还是有问题,因为不允许强制转换。。。 - -!
请问有人能告诉我该怎么办么。。(能否将long的前/后4个字节取出来而不用强制转换)
麻烦大家了
...全文
534 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
static_cast算什么转换
守望者 2014-05-23
  • 打赏
  • 举报
回复
static_cast 不行 int *p = (int *)&s; int j = *p; 强制转换也不行 我解决了,用联合体
cc-cricket 2014-05-23
  • 打赏
  • 举报
回复
int *p = (int *)&s; int j = *p;

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧