因此,每当我试图在服务器上运行Makefile时,它总是在标记“*”之前给出错误“Memory.c:9 error:expected')”。但当我试着在自己的电脑上运行时,它运行得很好。我一直在想到底出了什么问题,但似乎找不到。
我已经附上了在我的程序的这一部分中使用的3个文件。Memory.c、Memory.h和ProcessInput.h。
这是记忆
/* Initializes memory */
#include <stdio.h>
#include <stdlib.h>
#include "memory.h"
void initializeMemory(memory** memArray, int memSize)
{
// Allocating space for memory array
*memArray = malloc(memSize * sizeof(memory));
if(*memArray == NULL)
{
fprintf(stderr, "Error allocating space for array of memory" );
exit(1); // exit(1) = Unsuccessful exit
}
// Initializing the contents within memory array
int i = 0;
for(i = 0; i < memSize; i ++)
{
((*memArray)[i]).occupied = false;
}
}
这就是记忆
// Definitions for Memory.c
#define bool int
#define true 1
#define false 0
#include "ProcessInput.h"
// Include guards to prevent redefinition of struct
#ifndef MEMORY_H
#define MEMORY_H
typedef struct memoryDetail
{
process process;
bool occupied;
} memory;
#endif
// Function declaration for memory.c
void initializeMemory(memory** memArray, int memSize);
ProcessInput.h中唯一使用的是ProcessInput.h中定义的进程结构
这是ProcessInput.h
// Include guards to prevent redefinition of struct
#ifndef PROCESSDETAIL_H
#define PROCESSDETAIL_H
typedef struct processDetail
{
int timeCreated;
int processID;
int memorySize;
int jobTime;
} process;
#endif
// function declarations for ProcessInput.c
void processInput(int* maxSize, int* count, process** processes, char* fileName);
我不太清楚为什么会给我这个错误。我不知道我应该把一个丢失的右支架放在哪里。任何建议都非常感谢!
编辑:据我所知,以下这些问题我看了,但没有用。
error: expected ‘)’ before ‘*’ token
Multiple of same error while compiling "error: expected ')' before '*' token
http://www.dreamincode.net/forums/topic/288956-error-expected-before-token/
谢谢大家的帮助!
最佳答案
#include "memory.h"
与#include "Memory.h"
不同(即C区分大小写)
如果您尝试#include "myfile.h"
而不是#include "MyFile.h"
,则错误可能更明显。在这种情况下,编译器会发现系统memory.h
。
关于c - 预期在'*'标记之前的')',似乎找不到错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36439623/