14.10.18 varargs

На верх  Назад  Вперёд

Этот модификатор может использоваться только вместе с модификатором cdecl, для внешних процедур C. Он указывает что процедура принимает переменное число аргументов после последней объявленной переменной. Эти аргументы передаются без какой-либо проверки типа. Это эквивалентно использованию конструкции array of const для процедур cdecl, без объявления этой конструкции. Квадратные скобки аргументов-переменных не нужно использовать, когда используется эта форма объявления.

Следующие два способа объявления ссылок на функции библиотеки C:

Function PrintF1(fmt : pchar); cdecl; varargs; external 'c' name 'printf';

Function PrintF2(fmt : pchar; Args : Array of const); cdecl; external 'c' name 'printf';

Но они должны по-разному вызываться:

PrintF1('%d %d\n',1,1);

PrintF2('%d %d\n',[1,1]);