gcc -Wpadded不提供任何警告
我正在尝试使用gcc的-Wpadded选项来了解gcc是否可以帮助我找出结构是否填充。 这是以下代码。
#include struct my { char *name; int age; } my_details; int main() { struct my person1; return 0; }
我使用以下代码编写了代码。 gcc -Wpadded alignment_demo.c
。 它没有返回任何警告。 那么我的结构没有填充或者我错过了什么? 然而, man gcc
显示它支持一个名为-Wpadded的选项。 请帮助
谢谢奇丹巴拉姆
似乎包结构默认为 – 4.( gcc -fpack-struct=4
)
如果是这样 – 这个结构已经对齐了。
因为
char* - 4 or 8 bytes int - 4 bytes
如果你运行它,你会收到警告:
azat:~$ gcc -Wpadded -fpack-struct=8 -o test /tmp/test.c /tmp/test.c:6:1: warning: padding struct size to alignment boundary [-Wpadded]
因为int
。