++i %= range;
不幸的是,这个技巧不适用于减量,因为-1%v == -1.
我怎样才能在C中改进这个?
解决方法 为了避免负模数行为,您可以先将其设为正数:i = (i - 1 + range) % range;
但是,如果范围大于INT_MAX的一半,这是不好的. (或者我的任何类型).
这似乎更简单:
i = (i ? i : range) - 1;总结
以上是内存溢出为你收集整理的c – 递减和模数 – 如何在一行代码中递减负值全部内容,希望文章能够帮你解决c – 递减和模数 – 如何在一行代码中递减负值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)