4

在我的功能中,我首先使用 mod 如下:

void function(int, int, unsigned int);

调用:

function(100, 200, get_value() % 1024);

将返回一个从0 到get_value()变化的无符号整数。在这种情况下,可能是一个非常大的数字,导致运行次数过多,所以我将其更改如下:0x0xffffffffget_value() % 10241024function()

unsigned int num = get_value() % 1024;
function(100, 200, num);

在这种情况下,num是可以的。我曾经gcc编译过。

那么这两种方法有什么区别,C如何计算模量unsigned long呢?

4

1 回答 1

3

您的原型是用于function,但您正在调用function1。在这种情况下,function1函数没有原型,所以最后一个参数被认为是一个int. 这就是为什么您没有获得预期的转换。

重命名原型应该可以解决它:

void function1(int, int, unsigned int);
于 2012-05-18T00:52:28.177 回答