使用 for 函数时结构上的二进制"["错误

Binary "[" error on structure while using for function

本文关键字:二进制 错误 结构上 for 函数 使用      更新时间:2023-10-16

我正在尝试制作一个Q3BSP映射信息调试器。

我被困在纹理调试器部分,这是该部分使用的代码:

for( i = 0; i < nTextures; i++ ) {
    printf( "Texture id %dn", i );
    printf( "tTexture name %sn", Texture[i].name );
    printf( "tTexture flags %dn", Texture[i].flags );
    printf( "tTexture contents %dn", Texture[i].contents );
}

但这种错误似乎出现了:

错误C2676:二进制"[":"Q3BSPTexture"未定义此运算符或转换为预定义运算符可接受的类型

这是Q3BSP的文本结构:

typedef struct {
    char        name[64];      // Texture name. 
    int         flags;         // Surface flags.
    int         contents;      // Surface contents
} Q3BSPTexture;

我怀疑该结构没有像char[32]那样设置限制

但我喜欢听取专业人士的解决方案!

您还没有向我们展示Texture的定义。

您将Texture视为Q2BSPTezture s的数组。显然,它是一个单独的Q2BSPTezture对象,因此对其进行索引是没有意义的。您可能只需要将其声明为数组,或者声明为指向需要分配的数组的第一个元素的指针。

此外,错误消息暗示您正在编译C++,而不是C(在C中,类型不可能定义任何运算符)。

相关文章: