13.3. C-API

About
Functions order

13.3.1. About C-API

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

#

13.3.2. C-API functions order