Tag: integer arithmetic

具有不同int类型的操作

我有一个程序,它使用多种不同的int类型。 最常用的是uint64_t和标准int 。 但是我想知道我是否可以安全地在他们之间进行混合操作。 例如,我有一个uint64_t ,我想为它添加一个int并将该值存储为另一个uint64_t 。 做这样的事情安全吗? 在我可以对它进行操作之前,是否必须将int为uint64_t ? 我不能在网上找到关于它的东西。 它可能只是被允许,没有人质疑它或我的谷歌查询是错误的。 无论如何,基本上我的问题是我可以混合并使用不同类型的整数进行操作吗?

将任意大小的整数从Prolog传递到C.

现在,我正在学习如何使用C代码连接SICStus Prolog。 我想在SICStus Prolog版本4中使用/使用/查看任意大小的整数的“汉明重量”的C实现。 在我看来,我需要C函数来测试术语类型(SP_is_integer)和C函数来访问Prolog术语(SP_get_integer,SP_get_integer_bytes)。 但是,我不确定如何以便携,健壮的方式使用SP_get_integer_bytes。 你能指点一些精心设计的C代码做到这一点吗?