在c中初始化struct

时间:2012-04-24 17:04:39

标签: c variable-assignment

 typedef struct Node{
        int x;
        int y;
        struct Node* next;
    }Node;

我希望以这种方式在主“列表”中创建:

int main(){
        Node list;
 }

而不是这样:

int main(){
        Node list = {1,2,NULL};
    }

我想在struct的声明中初始化一个struct     试着这样:

 typedef struct Node{
        int x;
        int y;
        struct Node* next;
    }Node = {1,2,NULL};

错误C2513:'节点':在'='之前没有声明变量

需要帮助

2 个答案:

答案 0 :(得分:3)

您不能在C中为结构成员提供预定义值。使用类似构造函数的函数或类似构造函数的宏。

答案 1 :(得分:1)

typedef(或struct)“statement”定义一个类型,而不是一个对象。

类型没有价值。谈论与物体相关的价值只是有意义的。

对象没有默认值(隐式初始化时为0除外)。

所以你不能做你想做的事。