小编use*_*735的帖子

内存对齐__attribute __((aligned(8)))

我在书中得到了一个程序

#include <stdio.h>
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 ;
}
Run Code Online (Sandbox Code Playgroud)

当我在安装在Windows 7机器上的cygwin上运行它时.我正在输出

2280712 2280716 2280720 16

为什么我得到这个输出?我期待着输出

2280712 …

c

12
推荐指数
2
解决办法
1万
查看次数

标签 统计

c ×1