我试图在结构中乘以矩阵的一个成员,结果得到一个错误。这是代码:
typedef unsigned char BYTE;
typedef struct {
BYTE bMatrix[3][4];
} STRUCTURE;
STRUCTURE structure = FillStructure();
float myFloat = structure.bMatrix[1][1] * 0.1;
最后一行给了我
binary*的操作数无效(有'BYTE*{aka unsigned char*}'和'float')
谢谢您!!
最佳答案
首先,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;
关于c - 用浮点数乘以结构中矩阵的成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41892833/