我之前从未使用过C#,我试图将一个函数转换为C,并且一切顺利,直到我到达这个奇怪的行。有人帮忙吗?
out Int128 remainder;
remainder._lo |= 1; ???
答案 0 :(得分:4)
假设在C中你有一个相同性质的Int128结构......在C中它将是
remainder._lo |= 1;
其中只是说用1进行按位OR或
某些C编译器提供了一个可以使用的128位整数,在这种情况下,您最终只会执行remainder |= 1;
答案 1 :(得分:4)
这意味着
remainder._lo
是某种类型的整数,| =运算符是按位或。
所以这相当于
reminder._lo = reminder._lo | 1
这可能是合法的C,具体取决于你的背景,但这应该是你的关键。
答案 2 :(得分:3)
相当于
remainder._lo = remainder._lo | 1;
其中|
是按位或运算符,但{C}中应该支持|=
。
Int128
可能是具有_hi
和_lo
成员的结构,用于存储128位整数的高位和低位64位。这条线只是一点一点,或者是低位64位,有效地接通最低有效位。