logo
TurboProlog / Документация / TOM_2

Передача структур.

Составные элементы Турбо Пролога представляются как записи. Первый

элемент записи содержит функтор, соответствующий объявлению домена Турбо

Пролога, а остальное соответствует элементам составного объекта. Напри-

мер, в этом фрагменте

domains

mydom = i (integer); c (char); s (string)

функтор будет равен 1 для первой альтернативы, i (integer); 2 - для вто-

рой, c (char); 3 - для третьей и т.д.

typedet Турбо Си для mydom может быть таким:

typedet struct {

unsigned char type;

union {

int i;

char c;

char *s;

}

} "mydom";

Если вы создаете и возвращаете составные объекты таким образом, то

должны сперва вызвать alloc_gstack, чтобы выделить место в глобальном

стеке для объекта (структуры Си) перед присвоением значений элементам

этой структуры.