我正在为学校做一个 CS 项目,但我似乎遇到了这个非常无用的奇怪错误。我和我的搭档似乎无法弄清楚。
它在第一个函数声明我的 .h 文件( UArray2_new)。
紧随其后的是在函数声明的每一行上重复的“错误:预期的 ')' 之前的 '*' 标记”。有任何想法吗?我在我的里面包含了一个空白的 main,所以你可以看到它不可能是一个编译问题。我使用“gcc -Wall -Wextra -Werror UArray2.c”进行编译。
//UArray2.h
#include <stdlib.h>
#include <stdio.h>
#ifndef UARRAY2_INCLUDED
#define UARRAY2_INCLUDED
struct UArray2_T{
int width, height;
};
extern UArray2_T * UArray2_new(int height, int width, int size);
extern void UArray2_free(UArray2_T * uarray2);
extern void * UArray2_at(UArray2_T * uarray2, int column, int row);
extern int UArray2_size(UArray2_T * uarray2);
extern int UArray2_columns(UArray2_T * uarray2);
extern int UArray2_rows(UArray2_T * uarray2);
static int UArray2_index(UArray2_T * uarray2, int col, int row);
#endif
这是.c文件
//UArray.c
#include <stdlib.h>
#include <stdio.h>
#include "UArray2.h"
int main()
{
return 0;
}
UArray2_T * UArray2_new(int height, int width, int size)
{
T newArray=malloc(sizeof(UArray2_T));
newArray->height=height;
newArray->width=width;
(void) size;
return newArray;
}
void UArray2_free(UArray2_T * uarray2)
{
(void) uarray2;
//need to write
}
void * UArray2_at(UArray2_T * uarray2, int column, int row)
{
(void) uarray2;
int index=UArray2_index(uarray2, column, row);
(void) index;
//if(index>0 && index<=column*row)
//return UArray_at(uarray2->UArray, index);
//else
//throw an error
char * k="hi"; //dummy variables
return k;
}
int UArray2_size(UArray2_T * uarray2)
{
//UArray_size(uarray2->UArray);
return 0;
}
int UArray2_columns(UArray2_T * uarray2){
return uarray2->width;
}