可能重复:
struct confusion
我需要帮助......我的代码中存在一些错误(我已对行添加了一些注释),如下所示:
错误:'bookRecord'之前的预期表达
.....这是一个程序员,它将一些书籍数据存储在一个结构数组中,并使用一个函数来查看用户搜索的书籍是否可用。
所以我想修复错误并使bookRecord看起来不像变量,
你知道我怎么能这样做,因为我在这里待了几个小时!
提前致谢!
#include<stdio.h>
#include <stdlib.h>
#include <string.h>
#define TRUE 1
#define FALSE 0
#define NUM_BOOKS 5
typedef struct {
int minute;
int hour;
} timeT;
typedef struct {
char title[50];
char author[50];
int year;
int isOut;
timeT time;
int isBlank;
} bookRecord;
/* given array of struct */
bookRecord stacks[NUM_BOOKS]=
{
{"C How To Program", "Deitel", 2006, FALSE, {0, 0}, TRUE} ,
{"The Old Capital", "Yasunari Kawabata", 1996, FALSE, { 0, 0}, TRUE},
{"", "", 0, FALSE, {0,0}, FALSE},
{"", "", 0, FALSE, {0,0}, FALSE},
{"", "", 0, FALSE, {0,0}, FALSE}
};
int requestBook(bookRecord title[],bookRecord author[]){ /* compiler error */
int i;
for(i=0;i<=NUMBOOKS-1;i++){
if(strcmp(stacks[i].tittle ,bookRecord.title[0]) == 0 &&
strcmp(stacks[i].author ,bookRecord.author[0]) == 0 ){
return 1;
}
}
return 0;
}
int main (int argc, char*argv[]) {
int t;
scanf("%s ",bookRecord.title); /* compiler error */
scanf("%s",bookRecord.author); /* compiler error */
t=requestBook(bookRecord.title, bookRecord.author); /* compiler error*/
printf("%d",t);
return 0;
}
答案 0 :(得分:0)
您的代码中的问题是您使用的是类型而不是变量!
bookRecord is a type not variable
int requestBook(bookRecord title[],bookRecord author[]){ /* compiler error */
改为使用它(以避免混淆):
int requestBook(bookRecord title_record[],bookRecord author_record[]){
这里title_record
和author_record
是bookRecord类型的结构数组我不确定这个行为是你想要的,你应该为作者创建一个类型。
对于main
内的错误,请使用var stacks
而不是bookRecord
类型。