我有两个文件:getParams.c
和tree.c
。
我要做的是将tnode
中的tree.c
声明为getParams.c
。
我不记得如何正确包含其他源文件中的代码。
#include <stdlib.h>
int main(int argc, char *argv[]) {
tnode *doublyLinked;
addtree(doublyLinked, argv[1]);
return 0;
}
/*
* 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’
我可以收到你的帮助吗?
答案 0 :(得分:2)
予。您应该在单独的头文件中定义tnode
结构类型,并将该头文件包含在两个实现文件中。
II。这是C,而不是C ++。 struct tnode { };
不会自动定义类型名称tnode
- 您必须手动执行此操作:
typedef struct tnode {
/* foo */
} tnode;
答案 1 :(得分:0)
您需要在共享标头中声明tnode
,然后使用以下内容包含它:
#include "myheader.h"