发现一个gcc的“BUG”?

代码如下:

#include <stdio.h>

struct list {
    struct t *next;
    int i;
};

int main(void)
{
    struct list l;

    printf("len = %lu.n", sizeof(l));
    return 0;
}

上面的list类型中next成员的类型是struct t,但是struct t是未定义的,但是上面的代码编译是可以通过的,并且不会报警告。如果将其中的星号去掉,或者引用list类型中的i、或next成员时会报错

你可能感兴趣的:(发现一个gcc的“BUG”?)