请分析THIS!

pan2009 2003-09-08 12:16:14
回答精辟者 我会请他领分,驷马难追



#include <stdio.h>
#include <limits.h>

int pack(char a,char b,char c,char d)
{
int p=a;

p=(p<<CHAR_BIT)|b;
p=(p<<CHAR_BIT)|c;
p=(p<<CHAR_BIT)|d;

return p;
}

void main()
{
printf("abcd=");

int x=pack('a','b','c','d');
printf("x=%d",x);

putchar('\n');
}
...全文
34 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jinhao 2003-09-08
  • 打赏
  • 举报
回复
分析什么??代码意思就是把4个char装到一个int里,但要满足一个条件,你所使用的编译器是把int看成4个字节

CHAR_BIT是8
int p=a; 把a的值给p
p=(p<<CHAR_BIT)|b; //先把p里的东西向左移8个位,在把b接在后面的8个位里,下面同理
p=(p<<CHAR_BIT)|c;
p=(p<<CHAR_BIT)|d;
windyguy 2003-09-08
  • 打赏
  • 举报
回复
……汗,怎么分析?你的作业么?呵呵
很简单的东西嘛。依赖char是8bit,int是32bit,所以用CHAR_BIT这个常量看起来假惺惺的

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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