c - 结构困惑 (2)

标签 c arrays function compiler-construction struct

Possible Duplicate:
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;
}

最佳答案

代码中的问题是您使用的是类型而不是变量!

bookRecord is a type not variable

int requestBook(bookRecord title[],bookRecord author[]){    /* compiler error */

改用它(以避免混淆):

int requestBook(bookRecord title_record[],bookRecord author_record[]){

这里 title_recordauthor_record 是 bookRecord 类型的结构数组,我不确定这种行为是您想要的,您应该为作者创建一个类型。

对于 main 内的错误,请使用 var stacks 而不是类型 bookRecord

关于c - 结构困惑 (2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12021009/

相关文章:

c# - 使用 LINQ 在 C# 中计算文件数

c - 如何使这个结构体实例在 C 中可变?

android - 如何在 SQLite for android 中加减数字?

javascript - 立即调用函数表达式有什么意义?

c - 传递给 pgplot 时,是否有一种 O(1) 方法来分离复数数组的实部和虚部?

arrays - 如何在jsrender中查找传递的数组的长度?

arrays - 在 Swift 中过滤数组中元素的 'string' 值

c - OpenGL 中的纹理映射(使用 SOIL)

c - libxlsxwriter 库 (MSYS2) 的问题

c - C 中 main() 执行一半后输出消失