奇数错误:'FILE *'的间接级别与'FILE'不同

时间:2014-09-23 02:41:04

标签: c++ file pointers visual-c++-2008

我见过有类似问题的人涉及其他文件类型,但没有直接解决FILE问题。如标题中所述,错误为'FILE *' differs in levels of indirection from 'FILE'

在我的main.h中,我包含<stdio.h>,如果我没记错的话,它是唯一一个在其中包含FILE流类型的标准库。然后,在一个标题中,我有extern FILE *gvLog;。我只在<stdio.h>中添加了main.h,并且我使用了#ifndef _MAINH_来防止它被包含两次,为什么我会收到此错误?这是什么意思?

1 个答案:

答案 0 :(得分:1)

“间接级别”语言意味着一个是类型,另一个是指向该类型的指针。在这种情况下,FILE是一种类型,FILE*是指向该类型的指针。您正在使用另一个预期的对象,很可能您将*gvLog(类型为FILE的对象)传递给期望FILE*的stdio函数(指向对象的对象)输入FILE)。