自写函数实现
#include<iostream>
using namespace std;
unsigned int fun1(unsigned int a)
{
unsigned int b = 0;
*(char *)(unsigned int(&b)) = *(char *)(unsigned int(&a) + 3);
*(char *)(unsigned int(&b) + 1) = *(char *)(unsigned int(&a) + 2);
*(char *)(unsigned int(&b) + 2) = *(char *)(unsigned int(&a) + 1);
*(char *)(unsigned int(&b) + 3) = *(char *)(unsigned int(&a));
cout << b << endl;
cout << 0x44332211 << endl;
return b;
}
unsigned int fun2(unsigned int a) {
unsigned int y=0;
((char*)&b)[0] = ((char*)&a)[3];
((char*)&b)[1] = ((char*)&a)[2];
((char*)&b)[2] = ((char*)&a)[1];
((char*)&b)[3] = ((char*)&a)[0];
cout << b << endl;
cout << 0x44332211 << endl;
return b;
}
int main()
{
fun1(0x11223344);
fun2(0x11223344);
return 0;
}
思路
以unsigned int类型为例,其变量占用四个字节内存空间,假设a=0x11223344,大端存储

最低0.47元/天 解锁文章
1253

被折叠的 条评论
为什么被折叠?



