我有一个头文件,dimensions.h
其中:
#ifndef DIM_H
#define DIM_H
typedef struct Dimensions
{
int width;
int height;
} DIM;
DIM * GetHeader (FILE * fp);
#endif
从这里我有 ac 文件确实有这个:
#include "dimensions.h"
.
.
.
DIM * GetHeader (FILE * fp)
{
char s[1024];
struct Dimensions * d = (struct Dimensions *)malloc(sizeof(Dimensions));
if (fgets(s, sizeof(s), fp) != NULL)
{
printf("%s", s);
d->width = atoi(strtok(s, " \n\0"));
d->height = atoi(strtok(NULL, " \n\0"));
}
return d;
}
但是当我运行它时,我会收到类似Dimensions undeclared
. 因此,我将代码更改Dimensions
为DIM
(仍然没有真正理解这两个名称“方案”。
struct DIM * d = (struct DIM *)malloc(sizeof(DIM));
然后我收到错误d->width
并d->height
说它正在取消引用指向不完整类型的指针,所以我交换->
了.
然后是一个错误request for member width/height in something not a structure or union
。
所以不太确定发生了什么,可能是我想念的非常简单的事情,所以如果有人能提供帮助,那就太棒了。
谢谢!