- 论坛徽章:
- 0
|
请教高手,代码如下:
{
typedef struct testnopack{
char c[2];
}testnopack;
typedef struct testwithpack{
char c[2] __attribute__ ((packed));
}testwithpack __attribute__ ((packed));
printk("weiwei debug test testnopack = %d. testwithpack=%d\n", sizeof(testnopack), sizeof(testwithpack));
}
当我用arm-elf-gcc 编译的时候 打印的得到的结果都是 4, 当我加上 -fpack-struct 编译标志的时候,打印的得到的结果都变成了 2,
对结构
typedef struct testnopack{
char c[2];
}testnopack;
我是不希望编译器对它进行紧凑编译的,希望它在编译的时候能够自动补齐,长度能为4。
请教高手,我该如何做啊,先跪谢了
我的交叉编译器的版本是
[email=windy@linux:~/8620L/ag621/ag621pci]windy@linux:~/8620L/ag621/ag621pci[/email]> arm-elf-gcc -v
Reading specs from /home/windy/8620L/armutils_2.5.113.0/toolchain/lib/gcc-lib/arm-elf/2.95.3/specs
gcc version 2.95.3 20010315 (release) |
|