4

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
4

2 に答える 2

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;
}
于 2013-03-13T17:17:17.183 に答える
0

正しく見えます。しかし、おそらくrootNode.rotationで何かしたいと思ったことはありませんか?

Node rootNode;
memset(&rootNode, 0, sizeof(rootNode)); // zero everything there
rootNode.rotation = .5f;
于 2013-03-13T17:20:34.137 に答える