本帖最后由 andiwxz 于 2013-1-11 11:41 编辑
我使用的是st的芯片,用的是MDK4.3的编译环境。现在有两个byte类型的数组,想转成int类型的然后进行或运算。主要是想验证int进行运算快还是byte运算快。
byte testa[512];
byte testb[512];
u32 testc[128];
testc=(*(int *)(& testa)|(*(int *) (&testa));
得出的结果不是对齐的,不知道是我的运算有问题还是因为地址不是4字节的整数倍的关系,有一个数组地址的起始地址是0xe0035;
想请大家帮助,现在我已经不关心怎么运算快了,只关心以下两点。
1,我的转换对不对?不对应该怎么转换。
2,我想讲数组定义到指定的地址。例如0xe0030;请问怎么定义。
补充一下,刚刚做了测试,同样的数据量,int类型做运算比byte做运算快了将近4倍。因为我这个是现成的程序,定义什么的都不能改,现在只能想办法运算的时候强转数据类型。各位有什么好办法吗?强转后的数据是对齐正确的。
|