「The C Programming Language」を読んでいて、 structの typedef に関する問題に遭遇しました。コードは次のようになります。
typedef struct tnode *Treeptr;
typedef struct tnode { /* the tree node: */
char *word; /* points to the text */
int count; /* number of occurrences */
struct tnode *left; /* left child */
struct tnode *right; /* right child */
} Treenode;
書く頃には
typedef struct tnode *Treeptr;
tnode はまだ宣言されていませんが、コンパイル エラーは発生しませんが、上記のステートメントを次のように変更すると、
typedef Treenode *Treeptr;
コンパイル エラーが発生します。
error: parse error before '*' token
warning: data definition has no type or storage class
違いの原因は何ですか?「struct tnode」は「Treenode」と同じではありませんか?