我有个奇怪的错误:
app_server.c: In function ‘wasFeedRead’:
app_server.c:269:14: error: ‘tmp’ undeclared (first use in this function)
readers* tmp;
^
app_server.c:269:14: note: each undeclared identifier is reported only once for each function it appears in
我的wasFeedRead函数只包含以下几行:
int wasFeedRead(char* loginName, readers* readers){
readers* tmp;
return 0;
}
读卡器的定义如下:
struct readers {
char *user;
struct readers *next;
};
typedef struct readers readers;
错误在
readers* tmp;
行而不是int wasFeedRead(char* loginName, readers* readers)
行,因此读卡器的声明应该是正确的。。我真的很失望这个错误,有人知道如何解决这个问题吗?我已经试着改变了变量名,但是没有改变任何东西(惊讶的惊喜)。
提前谢谢
最佳答案
参数名正在函数体中着色类型名。
可以通过重命名类型或参数名来解决此问题。
例子:
struct readers {
char *user;
struct readers *next;
};
typedef struct readers Readers;
这里的类型是Readers,然后它不会与参数名Readers冲突。
int wasFeedRead(char* loginName, Readers* readers){
Readers* tmp;
return 0;
}