如何避免此错误(结构)

时间:2017-07-13 00:16:00

标签: c

我正在尝试构造一个结构,并且有一个返回该类型指针的函数

这是我的示例代码

struct Word
 {
     char data[10];                         //my structure
     struct Word *nextWord;
     struct Word  *lastWord;
 };

 Word* addWord(Word* top, Word* newNode)   // my function declaration

我创建了一个结构词,在它下面,我已经声明了一个函数。在Word' 之前显示错误'期望的声明说明符或...为什么??

3 个答案:

答案 0 :(得分:0)

更改您的声明
Word* addWord(Word* top, Word* newNode)   // my function declaration

struct Word* addWord(Word* top, Word* newNode)   // my function declaration

请注意struct关键字。这是因为在C中,结构实例具有以下语法:

struct struct-name instance-name;

或者,你可以像这样定义你的结构

tyepdef struct Word
 {
     char data[10];                         //my structure
     struct Word *nextWord;
     struct Word  *lastWord;
 };

typedef关键字只允许我们编写Word *w而不是struct Word *w

答案 1 :(得分:0)

创建新变量类型时,必须在结构名称中添加struct。这是struct Word *newWord;,请在此处阅读更多信息C struct

更改此

Word* addWord(Word* top, Word* newNode)

到这个

struct Word* addWord(struct Word* top, struct Word* newNode)

答案 2 :(得分:0)

如果你正在使用C ++程序,那么你不需要声明struct关键字,但是你在C程序中然后在函数中添加一个结构关键字,即 struct Word * addWord(struct Word * top,struct Word * newNode);