我见过有类似问题的人涉及其他文件类型,但没有直接解决FILE问题。如标题中所述,错误为'FILE *' differs in levels of indirection from 'FILE'
。
在我的main.h
中,我包含<stdio.h>
,如果我没记错的话,它是唯一一个在其中包含FILE流类型的标准库。然后,在一个标题中,我有extern FILE *gvLog;
。我只在<stdio.h>
中添加了main.h
,并且我使用了#ifndef _MAINH_
来防止它被包含两次,为什么我会收到此错误?这是什么意思?
答案 0 :(得分:1)
“间接级别”语言意味着一个是类型,另一个是指向该类型的指针。在这种情况下,FILE
是一种类型,FILE*
是指向该类型的指针。您正在使用另一个预期的对象,很可能您将*gvLog
(类型为FILE
的对象)传递给期望FILE*
的stdio函数(指向对象的对象)输入FILE
)。