double _clip_parnd(ClipMachine * cm,int num) int _clip_parni(ClipMachine * cm,int num) long _clip_parnl(ClipMachine * cm,int num) void _clip_retnd(ClipMachine * cm,double n) void _clip_retni(ClipMachine * cm,int n) void _clip_retnl(ClipMachine * cm,long n)
C-API языка CLIP представляет собой набор C-функций, позволяющих использовать C вместе с CLIP. Это может понадобиться, например, для написания функций, критичных по скорости выполнения; для написания функций-оболочек для существующих функций или библиотек, и т.д. Знание C-API даст вам более полное представление о внутренней структуре CLIP.
C-функции, которые предполагается использовать с CLIP (т.е. те которые можно вызывать из CLIP-функций, в дальнейшем 'экспортируемые функции'), располагаются в отдельном исходном файле C, или нескольких файлах. В этих файлах должно быть включение заголовочного файла "clip.h", в котором находятся прототипы функций C-API и описания структур.
Имя экспортируемой функции должно иметь префикс 'clip_', а само имя функции должно быть написано заглавными буквами. Она должна возвращать значение типа 'int', а получать один единственный параметр типа 'ClipMachine *' - указательна структуру, содержащую контекст текущей Виртуальной Машины CLIP.
Экспортируемая функция должна возвращать 0 (ноль) в случае успеха, или соответствующий код ошибки (описанные в error.ch, имеющие префикс 'EG_').
Пример: /* my.c */ #include <stdio.h> #include "clip.h" int clip_MYFUNCTION(ClipMachine *cm) { printf("Hello from MyFunction()\n"); return 0; } /* end of my.c */ /* test.prg */ MyFunction() /* end of test.prg */ Compilation: gcc -c -I${CLIPROOT}/include my.c clip -eM test.prg my.o Running: #./test Hello from MyFunction #
_clip_parnd(ClipMachine * cm,int num) --> double
_clip_parnd() принимает числовое значение переданное в качестве параметра из CLIP и преобразует его в double.
<num> | - позиция параметра в списке параметров |
Returns : | _clip_parnd() возващает значение указанного параметр как double. |
See also : | _clip_parni() _clip_parnl() _clip_retnd() _clip_stornd() |
_clip_parni(ClipMachine * cm,int num) --> int
_clip_parni() принимает числовое значение переданное в качестве параметра из CLIP и преобразует его в int.
<num> | - позиция параметра в списке параметров |
Returns : | _clip_parni() возващает значение указанного параметр как int. |
See also : | _clip_parnd() _clip_parnl() _clip_retni() _clip_storni() |
_clip_parnl(ClipMachine * cm,int num) --> long
_clip_parnl() принимает числовое значение переданное в качестве параметра из CLIP и преобразует его в long.
<num> | - позиция параметра в списке параметров |
Returns : | _clip_parnl() возващает значение указанного параметр как long. |
See also : | _clip_parni() _clip_parnd() _clip_retnl() _clip_stornl() |
_clip_retnd(ClipMachine * cm,double n) --> void
_clip_retnd() используется для переноса числового значения в область возвращаемых значений CLIP. Позднее, когда экспортируемая функция, написанная на C, возвратит управление в вызвавшую ее CLIP программу, перенесенное арифметическое значение будет доступным точно так же, как если бы оно было непосредственно возвращено из CLIP-функции.
<n> | - числовое выражение типа double |
Returns : | _clip_retnd() не имеет возвращаемого значения. |
See also : | _clip_parnd() _clip_retni() _clip_retnl() _clip_stornd() |
_clip_retni(ClipMachine * cm,int n) --> void
_clip_retni() используется для переноса числового значения в область возвращаемых значений CLIP. Позднее, когда экспортируемая функция, написанная на C, возвратит управление в вызвавшую ее CLIP программу, перенесенное арифметическое значение будет доступным точно так же, как если бы оно было непосредственно возвращено из CLIP-функции.
<n> | - числовое выражение типа int |
Returns : | _clip_retni() не имеет возвращаемого значения. |
See also : | _clip_parni() _clip_retnd() _clip_retnl() _clip_storni() |
_clip_retnl(ClipMachine * cm,long n) --> void
_clip_retnl() используется для переноса числового значения в область возвращаемых значений CLIP. Позднее, когда экспортируемая функция, написанная на C, возвратит управление в вызвавшую ее CLIP программу, перенесенное арифметическое значение будет доступным точно так же, как если бы оно было непосредственно возвращено из CLIP-функции.
<n> | - числовое выражение типа long |
Returns : | _clip_retnl() не имеет возвращаемого значения. |
See also : | _clip_parnl() _clip_retni() _clip_retnd() _clip_stornl() |
Пред. | Начало | След. |
SYSTEM | Уровень выше | ARRAY |