| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 577 人关注过本帖
标题:求救大虾!这三段代码说的是啥意思?
只看楼主 加入收藏
Cstudyer
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-6-29
收藏
 问题点数:0 回复次数:3 
求救大虾!这三段代码说的是啥意思?
ptBuffer=(UINT8*)malloc(1024)
ptemp=ptBuffer
*(ptemp+0)=(UINT8)((uLength)&off);
*(ptemp+1)=(UINT8)(((uLength)>>8)&off);

给ptBuffer分配1K的内存,ptemp指向ptBuffer。
后面两段分别在ptBuffer的两个地址存放东西,我不明白做什么用的。好像是调整字节序,但不明白如何实现。
==================================================
for(i=0;i<uLTempLength/4);i++)
{
for(j=0;j<4;j++)
{
*(ptempvalue+3-j)=*(ptemp+i*4+j);
}
*(((UINT32*)ulBufferAddr)+i)=((UINT*)ptempvalue);
}
ulBufferAddr=ulBufferAddr+uLTempLength;

PS:ptempvalue分配了4字节的内存空间,
这一段主要不明白这两个循环在做什么。感觉是把一段内存的东西搬移到另外一个内存。
=========================================
if(xwAllength%4==1)
{
xwvalue=(UINT32)(*((UINT*32)(ptemp+uLTempLength)));
xwvalue=(UINT32)(xwvalue>>24);
}

这个右移起什么什么用?

以前学硬件的,最近开始学C,遇到些问题,请大虾帮忙看看啦。
搜索更多相关主题的帖子: 内存 ptBuffer ptemp 
2008-06-29 19:54
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1692
专家分:4282
注 册:2007-12-27
收藏
得分:0 
起什么作用这类问题都得放到大环境里面理解,字面上是看不出来的。
2008-06-29 20:27
水中无月
Rank: 1
等 级:新手上路
帖 子:190
专家分:9
注 册:2008-6-17
收藏
得分:0 
是看不出用来做什么的
2008-06-29 20:32
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
1.申请1024字节的空间,然后在这段空间的前两个字节放下uLength
注意,uLength是16位的,也就是说要占两个字节,所以需要用两个赋值

2. 内循环(j)实现把4个字节拼成一个32位的数,然后外循环(i)取得这个32位数的值,保存到ulBufferAddr里边

3. 一个32位数右移24位,就是仅保留高8位,具体是什么作用,没上下文不好分析

从BFS(Breadth First Study)到DFS(Depth First Study)
2008-06-29 21:44
快速回复:求救大虾!这三段代码说的是啥意思?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029501 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved