我在 SO 中看到了很多关于对齐属性的问题,但是我没有在哪里找到它的优势或何时使用它(我的意思是在哪里以及在哪些场景中我们必须使用这个概念)。任何人都可以给出明确的答案吗?它的图片。刚刚从一个 SO 问题复制了一个程序,用于对齐属性参考
int main( )
{
struct data
{
int a __attribute__( ( aligned ( 8 ) ) ) ;
char ch __attribute__( ( aligned ( 1 ) ) ) ;
float s __attribute__( ( aligned ( 4 ) ) ) ;
} ;
struct data e ;
printf ( "\n%u %u %u", &e.a;, &e.ch;, &e.s; ) ;
printf ( "\n%d", sizeof ( e ) ) ;
return 0 ;
}
第一个用例是当你有一个char
如果您使用数组来存储其他内容,那么您需要强制对齐到正确的类型。
第二种情况是二进制协议,当您正在读取专门布局的数据(来自网络或文件)时,您需要强制使用对齐布局。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)