首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >这段代码如何将指针与64位边界对齐?

这段代码如何将指针与64位边界对齐?
EN

Stack Overflow用户
提问于 2011-02-08 03:11:56
回答 1查看 858关注 0票数 0

我想知道这段代码是如何将指针对齐到64位边界的?我在uboot cpu/mpc85xx/ethfcc.c中找到了这段代码。这里,底层以太网控制器要求缓冲器指针与64位边界对齐。

代码语言:javascript
运行
复制
uint cbd_bufaddr;
volatile uchar *NetRxPackets[PKTBUFSRX];
cbd_bufaddr = (uint)NetRxPackets[i];

我相信下面的检查是强制性的,以确保指针是64位对齐的,但我在uboot代码中没有看到它。

代码语言:javascript
运行
复制
if (cbd_bufaddr % 8 != 0)
    cbd_bufaddr += 8 - cbd_bufaddr % 8;

如果有人能指出我是否遗漏了什么明显的东西,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2011-02-08 03:15:26

原始代码中没有任何关于对齐的保证。您的第一个代码块只是从NetRxPackets数组中取出一个指针并将其插入到cbd_bufaddr中。从您提供的代码中没有任何迹象表明该数组中的指针有任何对齐限制。您需要向我们展示初始化该数组的代码,以便我们更多地了解发生了什么。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4925406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档