所以基本上看来 GNU Prolog 在我的 32 位 x86 Linux 上使用 28 位整数。
以下代码无法编译:
foo(A) :-
A0 is 0xdeadbeef,
A1 is A0 >> 8,
A2 is A0 >> 16,
A3 is A0 >> 24.
然后我对以下两种典型情况感到困惑:
如何
32bit
在 GNU Prolog 中表示一个整数(如 0xdeadbeef)?并进一步推动它,如何表示一个 64 位整数?在 64 位 x86 Linux 上,long long
输入 C 有 64 位。使用 GNU Prolog 调用 C 时,手册中定义的接口有
integer
,positive
和其他的.. 那么如果我想将一个32bit
整数从 Prolog 传递给 C,我应该选择哪种类型..?我找到了一个临时解决方案并将其写在这个问题中,有没有更好的解决方案?
谁能给我一些帮助?