1

我想知道以下 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这种形式引用。

4

1 回答 1

0

是的,你可以,但如果你想在结构 A 之外使用结构 B,你会遇到错误。

于 2013-06-25T13:22:37.203 回答