将一行从C#转换为C?

时间:2012-11-22 00:01:05

标签: c# c

我之前从未使用过C#,我试图将一个函数转换为C,并且一切顺利,直到我到达这个奇怪的行。有人帮忙吗?

out Int128 remainder;

remainder._lo |= 1; ???

3 个答案:

答案 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位,有效地接通最低有效位。