gcc c 关于结构体对齐
来源:互联网 发布:陶瓷产品设计软件 编辑:程序博客网 时间:2024/06/05 16:06
-Wpacked
Warn if a structure is given the packed attribute, but the packed
attribute has no effect on the layout or size of the structure.
Such structures may be mis-aligned for little benefit. For
instance, in this code, the variable "f.x" in "struct bar" will be
misaligned even though "struct bar" does not itself have the packed
attribute:
struct foo {
int x;
char a, b, c, d;
} __attribute__((packed));
struct bar {
char z;
struct foo f;
};
-Wpacked-bitfield-compat
The 4.1, 4.2 and 4.3 series of GCC ignore the "packed" attribute on
bit-fields of type "char". This has been fixed in GCC 4.4 but the
change can lead to differences in the structure layout. GCC
informs you when the offset of such a field has changed in GCC 4.4.
For example there is no longer a 4-bit padding between field "a"
and "b" in this structure:
struct foo
{
char a:4;
char b:8;
} __attribute__ ((packed));
This warning is enabled by default. Use
-Wno-packed-bitfield-compat to disable this warning.
-Wpadded
Warn if padding is included in a structure, either to align an
element of the structure or to align the whole structure.
Sometimes when this happens it is possible to rearrange the fields
of the structure to reduce the padding and so make the structure
smaller.
Warn if a structure is given the packed attribute, but the packed
attribute has no effect on the layout or size of the structure.
Such structures may be mis-aligned for little benefit. For
instance, in this code, the variable "f.x" in "struct bar" will be
misaligned even though "struct bar" does not itself have the packed
attribute:
struct foo {
int x;
char a, b, c, d;
} __attribute__((packed));
struct bar {
char z;
struct foo f;
};
-Wpacked-bitfield-compat
The 4.1, 4.2 and 4.3 series of GCC ignore the "packed" attribute on
bit-fields of type "char". This has been fixed in GCC 4.4 but the
change can lead to differences in the structure layout. GCC
informs you when the offset of such a field has changed in GCC 4.4.
For example there is no longer a 4-bit padding between field "a"
and "b" in this structure:
struct foo
{
char a:4;
char b:8;
} __attribute__ ((packed));
This warning is enabled by default. Use
-Wno-packed-bitfield-compat to disable this warning.
-Wpadded
Warn if padding is included in a structure, either to align an
element of the structure or to align the whole structure.
Sometimes when this happens it is possible to rearrange the fields
of the structure to reduce the padding and so make the structure
smaller.
- gcc c 关于结构体对齐
- gcc结构体对齐
- 关于C语言中的结构体对齐
- 关于C语言中的结构体对齐
- 关于C语言中的结构体对齐。
- 关于C语言中的结构体对齐
- 关于结构体对齐
- C结构体对齐
- C结构体对齐
- C-结构体对齐
- C 结构体对齐
- Mingw-gcc结构体取消对齐
- gcc结构体对齐的误用
- GCC结构对齐小结
- 关于C语言中的结构体对齐问题
- 关于C语言中的结构体对齐问题
- 关于C语言中的结构体对齐问题
- 关于C语言中的结构体对齐问题
- C# 多线程的使用(Thread)-初识多线程
- 学习css 备忘录
- 宁波理工邀请赛 c zoj3185解题报告
- Ubuntu 疑难杂症 摘要
- MySql 多表数据删除
- gcc c 关于结构体对齐
- struts中request、session、application对象的生成
- Spring事务管理---利用TransactionProxyFactoryBean生成事务代理
- @ManyToMany mappedby
- java委托设计模式之ComponentUI
- 【刮油减肥食谱】
- 简单地封装一个className
- 使用 Nautilus
- mmap详解