つまり、基本的に、GNU Prolog は私の 32 ビット x86 Linux で 28 ビット整数を使用しているようです。
以下のコードはコンパイルできません。
foo(A) :-
A0 is 0xdeadbeef,
A1 is A0 >> 8,
A2 is A0 >> 16,
A3 is A0 >> 24.
次に、以下の 2 つの典型的な状況で混乱します。
32bit
GNU Prolog (0xdeadbeef など) で整数を表す方法は? さらに押して、64ビット整数を表す方法は?64 ビット x86 Linux では、「long long
C has 64 bit」と入力します。GNU Prolog を使用して C を呼び出す場合、マニュアルで定義されているインターフェイスには
integer
、およびその他があります..次に、Prolog から C に整数positive
を渡したい場合、どの型を選択すればよいでしょうか..?32bit
アドホックな解決策を見つけて、この質問に書いています。より良い解決策はありますか?
誰か助けてくれませんか?