C++:访问int的特定八位字节的最快方法

izh*_*hak 0 c++ optimization micro-optimization

假设我们有32位整数,8位字符,gcc编译器和英特尔架构:

什么是最快的方式(没有汇编程序使用)来提取,比如说,整数变量的第三个八位字节?例如,将它存储到char []的某个特定位置的char中?

小智 6

对于第3个八位字节(小端):

int i = 0xdeadbeef;
char c = (char) (i>>16); // c = 0xad
Run Code Online (Sandbox Code Playgroud)