Function C(VS12)中的结构错误
我正在制作一个二进制搜索树,这是我的结构代码:Function C(VS12)中的结构错误,function,struct,declaration,binary-search-tree,Function,Struct,Declaration,Binary Search Tree,我正在制作一个二进制搜索树,这是我的结构代码: struct BST { float val; struct BST* left; struct BST* right; }; 紧接着,我对我将要使用的函数做了一些声明: BST* BSTCreate(float); void BSTFree(BST*); int BSTAddElement(BST*, float); 当我尝试运行整个程序时,我会遇到一些非常奇怪的错误,比如在“*”之前缺少“{”(第1个声明行)或者在
struct BST
{
float val;
struct BST* left;
struct BST* right;
};
紧接着,我对我将要使用的函数做了一些声明:
BST* BSTCreate(float);
void BSTFree(BST*);
int BSTAddElement(BST*, float);
当我尝试运行整个程序时,我会遇到一些非常奇怪的错误,比如在“*”之前缺少“{”(第1个声明行)或者在“*”
(第2个12月行)之前缺少“{”(第2个声明行)函数我有一行BST-tree;
它在一个错误中说“tree”:未声明的标识符。
我还有30个类似于整个程序的wierd错误。这是怎么回事?
struct BST
{
float val;
struct BST* left;
struct BST* right;
};
您可以使用:
struct BST* BSTCreate(float);
void BSTFree(struct BST*);
int BSTAddElement(struct BST*, float);
为此:
typedef struct BST
{
float val;
struct BST* left;
struct BST* right;
} BST;
或者这个:
struct BST
{
float val;
struct BST* left;
struct BST* right;
};
typedef struct BST BST;
您可以使用:
BST* BSTCreate(float);
void BSTFree(BST*);
int BSTAddElement(BST*, float);
谢谢!你能解释一下这行是什么意思吗?为什么我需要它?typedef struct BST BST;@user3105173typedef
告诉C(或C++)因为C/C++没有一个名为BST
的类型,你可以用typedef
定义你自己的类型。在这种情况下,你将名为BST
的类型定义为struct BST
。所以你不必在需要som时一直键入struct BST
这种类型的。你可以只说BST
。你也可以说像,typedef unsigned long UL;
,然后使用ulx;
如果你想x
成为你自己的,特殊的“unsigned long”。例如,请参阅。