gpt4 book ai didi

c - 在 C 中,如何计算 unsigned long 的模数?

转载 作者:太空狗 更新时间:2023-10-29 15:36:32 26 4
gpt4 key购买 nike

在我的函数中,我首先使用 mod 如下:

void function(int, int, unsigned int);

调用:

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

get_value() 将返回一个从 0x0 到 0xffffffff 的无符号整数。在这种情况下,get_value() % 1024 可能是一个比 1024 大的数字,这会导致 function() 运行太多次,所以我将其更改如下:

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

在这种情况下,num 就可以了。我用gcc编译。

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

最佳答案

您的原型(prototype)用于function,但您正在调用function1。在这种情况下,function1 函数没有原型(prototype),因此最后一个参数被认为是一个 int。这就是您没有获得预期转化的原因。

重命名原型(prototype)应该可以修复它:

void function1(int, int, unsigned int);

关于c - 在 C 中,如何计算 unsigned long 的模数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10645342/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com