0

私は2つのファイルを持っています:getParams.ctree.c

私がやろうとしているのは、からを宣言するtnodeことtree.cですgetParams.c

他のソースファイルのコードを適切に含める方法を覚えていません。

getParams.c

#include <stdlib.h>

int main(int argc, char *argv[]) {

tnode *doublyLinked;

addtree(doublyLinked, argv[1]);

return 0;
}

tree.c

/*
 *  Tree routines from Kernighan and Ritchie
 *  Chapter 6.
 */
#include <stdio.h>
#include <string.h>

#define EOS '\0'
#define LETTER 'a'
#define DIGIT '0'

#define MAXWORD 20


struct tnode{         /* the basic node */
     char *word;      /* points to the text */
     int count;           /* number of occurrences */
     struct tnode *left;  /* left child */
     struct tnode *right; /* right child */
};

main(){           /* word frequency count */
     struct tnode *root, *addtree();
     char word[MAXWORD];
     int t;

 root = NULL;
 while((t=getword(word, MAXWORD)) != EOF)
 if (t == LETTER)
     root = addtree(root,word);
 treeprint(root);
} 

... more code

私が得ているエラー

gcc getParams.c tree.c -o getParams

getParams.c: In function ‘main’:

getParams.c:5:2: error: unknown type name ‘tnode’

助けてもらえますか?

4

2 に答える 2

2

I.tnode構造タイプを別のヘッダーファイルで定義し、そのヘッダーファイルを両方の実装ファイルにインクルードする必要があります。

II。これはCであり、C++ではありません。struct tnode { };タイプ名は自動的に定義tnodeされません。手動で定義する必要があります。

typedef struct tnode {
    /* foo */
} tnode;
于 2013-02-19T21:36:34.243 に答える
0

共有ヘッダーで宣言tnodeしてから、以下を使用してそれを含める必要があります。

#include "myheader.h"
于 2013-02-19T21:36:13.550 に答える