C和C++中链表的初始化问题

程序原本可以完美运行。但是,当我把源文件的名字Node.cpp改名为Node.c之后,就无法通过编译,请问为什么C中不能这样初始化链表?

typedef struct NODE
{
    struct NODE* next;
    int valve;
} Node;

int main(void)
{
    Node a, b, c, d;

    a = { &b,1 };
    b = { &c,3 };
    c = { &d,5 };
    d = { NULL,7 };

        //其他代码
}

img

你这是赋值不是初始化