C 错误:在'之前应为标识符;(&x27;标记出现13次
我知道这不完全是一个“问题”,但我已经尽了最大努力,尽可能简洁地陈述 我不断地发现这个错误: 错误:在“(”标记之前应有标识符13次 我已经查过了 1) 有多余/缺少任何括号 2) 添加/缺少任何分号 3) 缺少任何头文件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|
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语法。您可以使用(*电梯)。楼层
或电梯->楼层
。为什么(*电梯)。(乘客)和(*电梯)。乘客之间有区别?括号不应该改变任何内容吗?