DSP移植和优化之“预编译伪指令: DATA_ALIGN和STRUCT_ALIGN

(1)#pragma DATA_ALIGN

语法:

#pragma DATA_ALIGN( symbol,constant)

作用:排列symbol到constant 指点的列边界,constant为2的n次方,n=0,1,2..

说白了就是首地址的字节对齐,首地址字对齐的最大好处就是可以告诉编译器充分利用行或块拷贝。

假设一个CACHE 的line 是128 字节【CACHE line简单说就是CACHE一次加载的字节数】。这样,如果首地址128 字节对齐,那么取一个128 字节的数据,只使用一个CACHE行就够了(如果不对齐,则取一个128 字节的数据至少需要2个CACHE行)。

例:

void func(void)

{

#pragma DATA_ALIGN(x,128)

int x[200];

}

(2)#pragma STRUCT_ALIGN

语法:

#pragma STRUCT_ALIGN(symbol,constant);

这个不用多说,和#pragma DATA_ALIGN很类似,只是#pragma STRUCT_ALIGN是针对结构而言。

typedef strct stSymbol

{

int A;

char B;

short C;

}STRUCT_TYPEDEF;

#pragma STRUCT_ALIGN(stSymbol,128);

===============

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值