通过float将结构中矩阵的成员相乘

时间:2017-01-27 11:22:09

标签: c

我试图在结构中乘以矩阵的一个成员,但我得到一个错误。这是代码:

typedef unsigned char   BYTE;

typedef struct {
    BYTE bMatrix[3][4];
} STRUCTURE;


STRUCTURE structure = FillStructure();

float myFloat = structure.bMatrix[1][1] * 0.1;

这最后一行给了我一个 无效的操作数到二进制*(有' BYTE * {aka unsigned char *}'和' float')

谢谢!

1 个答案:

答案 0 :(得分:-1)

首先,FillStructure是一个宏(正如你所说这是真正的代码)?我觉得你试图从函数中进行这些计算看起来很奇怪,它更合适,例如:

typedef unsigned char BYTE;
typedef struct {
    BYTE bMatrix[3][4];
} STRUCTURE;

#define FillStructure() (STRUCTURE){{0}} /* i guess? */

int main(void)
{
    STRUCTURE structure = FillStructure();
    float myFloat = structure.bMatrix[1][1] * 0.1;
}

然后,如评论中所述,您应该尝试投射矩阵成员以便转换"价值:

float myFloat = (float)structure.bMatrix[1][1] * 0.1;