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 |