C 错误:在'之前应为标识符;(&x27;标记出现13次

C 错误:在'之前应为标识符;(&x27;标记出现13次,c,compiler-errors,C,Compiler Errors,我知道这不完全是一个“问题”,但我已经尽了最大努力,尽可能简洁地陈述 我不断地发现这个错误: 错误:在“(”标记之前应有标识符13次 我已经查过了 1) 有多余/缺少任何括号 2) 添加/缺少任何分号 3) 缺少任何头文件 In function 'goToFloor': Line 86|error: expected identifier before '(' token Line 88|error: expected identifier before '(' token Line 90|

我知道这不完全是一个“问题”,但我已经尽了最大努力,尽可能简洁地陈述

我不断地发现这个错误:

错误:在“(”标记之前应有标识符13次

我已经查过了

1) 有多余/缺少任何括号

2) 添加/缺少任何分号

3) 缺少任何头文件

In function 'goToFloor':

Line 86|error: expected identifier before '(' token
Line 88|error: expected identifier before '(' token
Line 90|error: expected identifier before '(' token
Line 94|error: expected identifier before '(' token
Line 99|error: expected identifier before '(' token
Line 101|error: expected identifier before '(' token
Line 102|error: expected identifier before '(' token
Line 106|error: expected identifier before '(' token
Line 107|error: expected identifier before '(' token
Line 112|error: expected identifier before '(' token

In function 'printElevators':

Line 122|error: expected identifier before '(' token
Line 123|error: expected identifier before '(' token
Line 124|error: expected identifier before '(' token

||=== Build failed: 13 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

我已经包括了整个代码,而不仅仅是错误发生的地方,因为我感觉错误不在其中

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define CAPACITY 15
#define MAX_LEN 21


typedef struct elevator_t
{
    int floor;
    int passenger;
    int usage;

} elevator_t;

//main function
void setupElevators(elevator_t [], int);
void readSequences(char [][MAX_LEN], int);
void runElevators(elevator_t * elevators, char (* sequences)[MAX_LEN], int size);
void printElevators(elevator_t [], int size);
int mostUsedElevator(elevator_t [], int);

//sub functions
void goToFloor(elevator_t *elevator, int floor);//local to runElevator


int main(void)
{
    int size;
    elevator_t * elevators;
    char (* sequences)[MAX_LEN];

    printf("Enter number of elevators( 1 - 20 )PS I'm not validating: ");
    scanf(" %d", &size);

    setupElevators(elevators, size);
    readSequences(sequences, size);

    runElevators(elevators, sequences, size);

    printElevators(elevators, size);
    //printf("Most used elevator: %d\n", mostUsedElevator(elevators, size));

    return 0;
}


void dynamAlloc(elevator_t ** elevators,char (** sequences)[MAX_LEN],int size)
{
  *elevators=calloc( size, sizeof(**elevators) ); //wanna intialize everyting to 0
  *sequences=calloc( size, sizeof(**sequences) );
}


// Read in the sequences of floors the elevators go to.
void readSequences(char (*sequences)[MAX_LEN], int size)
{
    int i;

    for (i = 0; i<size; i++)
    {
        printf("Enter sequence for elevator %d: ", i+1);
        scanf(" %s", sequences[i]);
    }
}

void runElevators(elevator_t * elevators, char (* sequences)[MAX_LEN], int size)
{
    int floor_number=0,elevator_number;

    for(elevator_number=0; elevator_number<=size-1; elevator_number++)
    {
        while(sequences[elevator_number][floor_number]!='\0')
        {
            goToFloor(&elevators[elevator_number],floor_number);
            floor_number++;
        }
    }
}

void goToFloor(elevator_t *elevator, int floor)
{
    if( floor>  (*elevator).(floor)  )//going up, passengers are entering
    {
        if( (*elevator).(passenger) + floor >CAPACITY ) // cant take more than 15
        {
            (*elevator).(passenger)=CAPACITY;
        }
        else //<=15
        {
           (*elevator).(passenger)+= floor;
        }
    }
    else//going down, passengers are exiting
    {
       if( floor<=(*elevator).(passenger)) //whichever amount is lower will be the amount 
       {
           (*elevator).(passenger)-=floor;
           (*elevator).(usage)+=floor;
       }
       else
       {
           (*elevator).(usage)+=(*elevator).(passenger);
           (*elevator).(passenger)-=(*elevator).(passenger);

       }
    }

    (*elevator).(floor)=floor;//update current floor lift is at
}

void printElevators(elevator_t elevators[], int size)
{
    int elevator_number;

    for(elevator_number=0;elevator_number<=size-1;elevator_number++)
    {
        printf("Elevator %d:\n",elevator_number+1);
        printf("Floor: \n",( elevators[elevator_number] ).(floor));
        printf("Number of passengers: \n",( elevators[elevator_number] ).(passenger) );
        printf("Usage: \n", ( elevators[elevator_number] ).(usage) );
}
    }


int mostUsedElevator(elevator_t elevators[], int size)
{
    // Incomplete
    return 1;
}
#包括
#包括
#包括
#定义容量15
#定义最大长度21
类型定义结构电梯
{
内部楼层;
国际旅客;
int用法;
}电梯;
//主要功能
电梯(电梯[],内部);
无效读取序列(字符[][MAX_LEN],int);
无效运行电梯(电梯,字符(*序列)[最大长度],整数大小);
无效打印电梯(电梯[],内部尺寸);
int mostUsedElevator(电梯[],int);
//子功能
无效电梯(电梯,内部楼层)//本地到运行电梯
内部主(空)
{
整数大小;
电梯(t)电梯;;
字符(*序列)[MAX_LEN];
printf(“输入我未验证的电梯数量(1-20台):”;
scanf(“%d”,大小(&S);
设置电梯(电梯、尺寸);
读取序列(序列、大小);
运行电梯(电梯、顺序、尺寸);
打印电梯(电梯、尺寸);
//printf(“最常用的电梯:%d\n”,最常用电梯(电梯,尺寸));
返回0;
}
void dynamAlloc(电梯**电梯,字符(**序列)[最大长度],整数大小)
{
*电梯=calloc(size,sizeof(**电梯));//要将每次初始化为0吗
*序列=calloc(大小、大小(**序列));
}
//阅读电梯到达楼层的顺序。
无效读取序列(字符(*序列)[最大长度],整数大小)
{
int i;
对于(i=0;i容量)//不能超过15
{
(*电梯)。(乘客)=载客量;
}

else/这些错误经常出现在以下结构周围:

(*elevator).(passenger)=CAPACITY;

prog.c:88:25: error: expected identifier before ‘(’ token
             (*elevator).(passenger)=CAPACITY;
                         ^---------Error Here
这是一种非常奇怪、迟钝、不正确的结构使用方式

后面的内容必须是结构的字段。
尝试使用
parens
意味着它是要计算的表达式。
但是表达式在这里无效,它必须是字段名

这应该是:

elevator->passenger = CAPACITY;

(*电梯)。(楼层)
不是有效的C语法。您可以使用
(*电梯)。楼层
电梯->楼层
。为什么(*电梯)。(乘客)和(*电梯)。乘客之间有区别?括号不应该改变任何内容吗?