gcc -Wpadded不提供任何警告

CHI*_*HID 4 c gcc

我正在尝试使用gcc的-Wpadded选项来了解gcc是否可以帮助我找出结构是否填充.这是以下代码.

#include<stdio.h>

struct my {
    char *name;
    int age;
} my_details;

int main() {
    struct my person1;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我使用以下代码编写了代码.gcc -Wpadded alignment_demo.c.它没有返回任何警告.那么我的结构没有填充或我遗失了什么?man gcc但是显示它支持一个名为-Wpadded的选项.请帮助

谢谢奇丹巴拉姆

aza*_*zat 6

似乎pack struct default是 - 4.(gcc -fpack-struct=4)
如果是这样 - 那么这个结构已经对齐了.
因为

char* - 4 or 8 bytes
int - 4 bytes
Run Code Online (Sandbox Code Playgroud)

如果你运行它,你会收到警告:

azat:~$ gcc -Wpadded -fpack-struct=8 -o test /tmp/test.c
/tmp/test.c:6:1: warning: padding struct size to alignment boundary [-Wpadded]
Run Code Online (Sandbox Code Playgroud)

因为int.