标签:c-3 c endianness
我知道要测试字节序,我可以这样做:
bool IsLittleEndian(){
int a = 1;
char* ptr = (char*)&a;
return *ptr;
}
我的问题是为什么我们不能像这样只将int转换为char而不是int * to char *.
int a = 1;
char c = (char)a;
这也行吗?否则,我们不能做到这一点的原因是什么?
解决方法:
int和char都是数字类型.由于编译器知道正在使用的体系结构,因此无论字节顺序如何,int中的1将在char中变为1.我们使用指针来欺骗编译器不操纵数据.
标签:c-3,c,endianness 来源: https://codeday.me/bug/20190722/1503942.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。