可能重复:
结构混乱
我需要帮助...我的代码中有一些错误(我已经在行中添加了一些注释),如下所示:
错误:“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;
}
代码中的问题是您使用的是类型而不是变量!
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
。