我试图在结构中乘以矩阵的一个成员,但我得到一个错误。这是代码:
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')
谢谢!
答案 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;