gpt4 book ai didi

c - C 新手...在未完成的函数声明上在 "UArray2.h:19: error: expected ‘)’ 标记之前获取 ‘*’

转载 作者:行者123 更新时间:2023-11-30 15:55:09 25 4
gpt4 key购买 nike

我正在为学校做一个 CS 项目,但我似乎遇到了这个奇怪的错误,这非常没有帮助。我和我的搭档似乎无法弄清楚。

它在第一个上显示“UArray2.h:18: 错误:在 '*' 标记之前预期有 '='、','、';'、'asm' 或 'attribute'”函数声明我的 .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;
}

最佳答案

凡是有 UArray2_T * 的地方,都应该将其替换为 struct UArray2_T *。当您引用 时,C 需要 struct 关键字(但 C++不需要)结构类型。

避免这种情况的标准方法是使用 typedef,例如:

typedef struct {
int width, height;
} UArray2_T;

关于c - C 新手...在未完成的函数声明上在 "UArray2.h:19: error: expected ‘)’ 标记之前获取 ‘*’,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12480004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com