C struct creation错误未命名类型

时间:2013-03-13 17:16:08

标签: c struct

我只是想设置一个简单的递归结构而不需要太多的C知识(必须以某种方式学习)

这是我的make编译行

g++ -o cs533_hw3 main.c

这是我的代码

typedef struct Node Node;

struct Node
{
    int texture;
    float rotation;
    Node *children[2];
};

Node rootNode;
rootNode.rotation

这是我在最后一行的错误

error: 'rootNode' does not name a type

2 个答案:

答案 0 :(得分:19)

代码必须在C中的函数中。您可以在全局范围内声明变量,但不能在那里放置语句。

更正示例:

typedef struct Node Node;

struct Node
{
    int texture;
    float rotation;
    Node *children[2];
};

Node rootNode;

int main(void)
{
    rootNode.rotation = 12.0f;
    return 0;
}

答案 1 :(得分:0)

看起来正确。但你可能想用rootNode.rotation做点什么?

Node rootNode;
memset(&rootNode, 0, sizeof(rootNode)); // zero everything there
rootNode.rotation = .5f;