我的库中定义了一个函数和一个结构。我希望函数返回指向结构的指针。当我尝试编译程序和库时,出现以下错误:
error: incomplete definition of type 'struct _bmpfile'
printf("file size: %d", bmp->header.filesz);
~~~^
/usr/local/include/bmpfile.h:116:16: note: forward declaration of 'struct _bmpfile'
typedef struct _bmpfile bmpfile_t;
该结构在 bmpfile.h 中声明,然后在 bmpfile.c 中定义。我的程序 main.c 调用了以下函数,该函数应该返回一个 bmpfile_t:
bmp = bmp_create_from_file(filename);
bmpfile_t*
bmp_create_from_file(const char *filename)
{
FILE *fp;
fp = fopen(filename, "r");
if (fp == NULL) perror("error");
bmpfile_t *bmp = (bmpfile_t *)malloc(sizeof(bmpfile_t));
bmp_get_header_from_file(fp, bmp);
bmp_get_dib_from_file(fp, bmp);
bmp_get_pixels_from_file(fp, bmp);
fclose(fp);
return bmp;
}