所以这是从头到尾我出现错误的代码。我检查了每个指针关系和sintax规则不止一次,但是对于最后三行,编译器说:
"Expected '=', ',', ';', 'asm' or '__attribute__' before '->' token
怎么了/遗漏了?
代码:
typedef char labeltype;
typedef struct celltag{
labeltype label;
struct celltag* leftchild;
struct celltag* rightchild;
}celltype;
typedef celltype* BiTree;
typedef celltype* node;
node LAMBDA;
LAMBDA->label='A';
LAMBDA->leftchild=NULL;
LAMBDA->rightchild=NULL;
答案 0 :(得分:3)
您的代码中没有任何功能,说明只能出现在功能中。
以下几行是指令,必须在函数中:
LAMBDA->label='A';
LAMBDA->leftchild=NULL;
LAMBDA->rightchild=NULL;
我建议将这些说明放入主要功能中:
typedef char labeltype;
typedef struct celltag{
labeltype label;
struct celltag* leftchild;
struct celltag* rightchild;
}celltype;
typedef celltype* BiTree;
typedef celltype* node;
int main(void) /* This is where a function starts */
{
node LAMBDA;
printf("Program Start\n");
LAMBDA->label='A';
LAMBDA->leftchild=NULL;
LAMBDA->rightchild=NULL;
printf("Program End\n");
return 0;
} /* This is the end of the function */
答案 1 :(得分:1)
在C语言中,所有可执行代码都在内部函数中编写。您不能只在文件中间编写语句。
在C中的文件级别,您只能编写声明。代码中的所有内容都是声明,直到您到达最后三行为止。最后三行不是声明。您不能在文件级写它们。