C 错误:二进制的操作数无效%(具有‘;结构分数*’;和‘;结构分数*’;)

C 错误:二进制的操作数无效%(具有‘;结构分数*’;和‘;结构分数*’;),c,struct,C,Struct,我试图创建一个简单的程序,它接受一个分子和分母,然后将其拆分,并显示简化的形式。当我编译程序时,出现以下错误,我无法理解错误是什么: workshop9.c: In function ‘simplify’: workshop9.c:30:14: error: invalid operands to binary % (have ‘struct Fraction *’ and ‘struct Fraction *’) workshop9.c:31:14: error: invalid operan

我试图创建一个简单的程序,它接受一个分子和分母,然后将其拆分,并显示简化的形式。当我编译程序时,出现以下错误,我无法理解错误是什么:

workshop9.c: In function ‘simplify’:
workshop9.c:30:14: error: invalid operands to binary % (have ‘struct Fraction *’ and ‘struct Fraction *’)
workshop9.c:31:14: error: invalid operands to binary / (have ‘struct Fraction *’ and ‘int’)
以下是我得到错误的行:

 25 void simplify(struct Fraction *var1, struct Fraction *var2) {
 26
 27         int num1;
 28         int num2;
 29
 30         num1 = var1 % var2;
 31         num2 = var2 / 10;
 32 }

您不能在
C
中的
结构上使用
运算符
%

而是直接访问其
成员变量
,该变量为
本机类型
整数

例如:

num1 = var1->somemember % var2->somemember;
num2 = var2->somemember / 10;