В общем, кажется, что GNU Prolog использует 28-битное целое число на моем 32-битном x86 Linux.
Код ниже не может быть скомпилирован:
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
из Пролога в C, какой тип мне выбрать ...? Я нашел специальное решение и написал его в этом вопрос, есть ли лучшее решение?
Может ли кто-нибудь помочь мне?