Функция объявления добавляется в исходный “C” код функции. Эта функция вызывается только один раз, когда приложение стартует и сообщает менеджеру В/В имя, которое соответствует реализованной функции. Вот стандартный формат такой функции объявления:
UFP uspdef_xxx (char *name)
{
strcpy (name, "XXX"); /* gives the name of the function */
return (USP_xxx); /* returns the implementation function */
}
/* (xxx is the name of the function) */
Имя функции, использующееся оператором strcpy, должно быть написано заглавными буквами. Оно должно быть написано маленькими буквами в реализации функции и в имени функции объявления. Использование префиксов ”USP_” и “uspdef_” для реализации функции и определения функции позволяет пользователю именовать функции ключевыми словами языка “C” или именами существующих функций из “C” библиотек ISaGRAF.
В функцию объявления могут быть добавлены другие операторы для того, чтобы реализовать специфические операции инициализации связанные с этой функцией. Система ISaGRAF гарантирует, что эта функция вызывается только однажды при запуске приложения. Функция объявления вызывается для любой интегрированной функции, даже если она не используется в приложении ISaGRAF. Ядро ISaGRAF выдает ошибку, если в приложении используется не реализованная функция.
Прежде чем линковать новые функции с ядром, пользователь должен написать другой файл с исходным текстом, под именем “GRUS0LIB.C” и вставить его с сохраненной функцией в список файлов для линкера. “GRUS0LIB.C” содержит только массив функций объявления. Этот массив читается во время инициализации приложения, для того чтобы создать динамические связи с функциями написанными на “C”. Вот пример такого файла:
/* Файл "GRUS0LIB.c" - Пример using trigonometric functions */
#include <tasy0def.h> /* required for types definition */