请教:STM32F107上移植LWIP关于让编译器放弃字对齐的问题!

[复制链接]
3846|1
 楼主| woshiwowo 发表于 2010-11-18 14:38 | 显示全部楼层 |阅读模式
问大家一个问题,STM32F107上LWIP为什么没考虑放弃字节对齐?(我没有发现)C语言下struct是4字节对齐的,但处理包的时侯,在LWIP中根据不同数据长度读取相应数据的,所以,就该让编译器放弃struct的字节对齐。
我在cc.h中找到这个,(我用的是IAR)
#if defined (__ICCARM__)
#define PACK_STRUCT_BEGIN
#define PACK_STRUCT_STRUCT
#define PACK_STRUCT_END
#define PACK_STRUCT_FIELD(x) x
#define PACK_STRUCT_USE_INCLUDES
发现define并没有给PACK_STRUCT_BEGIN 后加什么代码以让编译器放弃字对齐
在etharp.h中的结构体eth_addr如下
PACK_STRUCT_BEGIN
struct eth_addr {
  PACK_STRUCT_FIELD(u8_t addr[ETHARP_HWADDR_LEN]);
} PACK_STRUCT_STRUCT;
PACK_STRUCT_END
以上面的看来,我觉得编绎器并没有放弃字对齐,可是这样做不是不能正常工作吗?可是我运行那个例程(网上下的)居然没有问题,小弟糊涂,望高人指点一下,谢谢!
linhaishi 发表于 2014-4-20 21:25 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

35

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部