__attribute__ ((__packed__))
时间: 2024-01-12 20:22:45 浏览: 121
__attribute__
4星 · 用户满意度95%
__attribute__ ((__packed__))是一种GCC编译器的扩展语法,用于告诉编译器对结构体或联合体进行紧凑排列,以减少内存空间的使用。这个属性可以用于结构体或联合体的定义之前,以确保它们被正确地紧凑排列。
以下是一个示例,演示了如何使用__attribute__ ((__packed__))属性:
```c
#include <stdio.h>
struct example {
char a;
int b;
char c;
} __attribute__((__packed__));
int main() {
printf("Size of struct example: %lu\n", sizeof(struct example));
return 0;
}
```
在这个示例中,我们定义了一个结构体example,它包含一个字符变量a,一个整数变量b和一个字符变量c。通过在结构体定义之前使用__attribute__ ((__packed__))属性,我们告诉编译器将结构体紧凑地排列在一起,不添加任何填充字节。
运行上述代码,输出将是结构体example的大小,即5个字节(1个字节的字符变量a,4个字节的整数变量b,没有填充字节)。
阅读全文