【问题标题】:Odd error: 'FILE *' differs in levels of indirection from 'FILE' [closed]奇怪的错误:'FILE *'与'FILE'的间接级别不同[关闭]
【发布时间】:2014-09-23 02:41:03
【问题描述】:

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

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

【问题讨论】:

  • 这可能意味着您将 *gvLog 而不是 gvLog 传递给带有 FILE* 参数的函数。但是,如果您想要的不仅仅是猜测,则必须向我们展示导致错误的代码。

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-11
    • 2013-02-18
    • 2015-06-22
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2011-11-05
    相关资源
    最近更新 更多