【发布时间】:2017-11-30 19:24:13
【问题描述】:
我收到此错误:
somedir/somefile.c: In function 'somefunc':
somedir/somefile.c:433:33: error: request for member '_file' in something not a
structure or union
ReturnValue->Val->Integer = _fileno(Param[0]->Val->Pointer);
^
尝试编译下一个代码时:
void somefunc(struct p *P, struct Value *ReturnValue, struct Value **Param, int n)
{
ReturnValue->Val->Integer = _fileno(Param[0]->Val->Pointer);
}
ReturnValue 是一个指向struct Value 的指针,并且有一个指向union 的指针,其中有一个int Integer
union SomeValue
{
int Integer;
void *Pointer;
}
struct Value
{
union SomeValue *Val;
}
Param 的工作方式也类似。我的意思是,一切似乎都是正确的,因为我还有另一个类似的功能,我没有任何错误,只有这个。怎么了?它与_fileno 功能有关吗?当我将_fileno 更改为fileno 时,也会发生同样的事情。
【问题讨论】:
-
Param[0]->Val->Pointer是文件吗? -
我在您提供的声明中没有看到任何名为
Pointer的成员。 -
没有函数:
_fileno也许你的意思是:fileno -
@user3629249 msdn.microsoft.com/en-us/library/zs6wbdhx.aspx
-
_fileno是 MSVC 功能,他们以他们的智慧弃用fileno。