我想知道以下C代码是否有效:
struct A {
struct B {
int value;
} b;
};
struct B;
void func1(struct B* b) {
b->value = 42;
}
void func2() {
struct A a;
func1(&a.b);
}
此代码使用gcc进行编译并按照人们的预期进行操作,而代码检查程序会抱怨并且我想知道谁是正确的,并且标准(C90或C99)是否可以接受此表单中的struct B
。
答案 0 :(得分:0)
是的,你可以,但是如果你想在结构A之外使用结构B,你会有错误。