История изменений
Исправление bormant, (текущая версия) :
А в паскалеподобных было бы так:
не совсем. В паскалях либо явно ^тип
, либо через явно именованный тип. Ну и до кучи, раз был помянут, тип указателя на функцию; получение самой точки входа в зависимости от диалекта по @func или просто по имени func.
type
PInteger = ^Integer;
LessFunc = function (a, b: Integer): Boolean;
procedure sort_(a: array of Integer; IsLess: LessFunc);
// ...
if IsLess(a[i],a[i+1]) then // ...
var
a, b: ^Integer;
c, d: PInteger;
За синтаксис указателей на функции вообще бить нужно
А этот синтаксис там не специальный какой-то, он из-за установленного приоритета операций сам таким получился.
void sort_(int* a, int n, bool (*IsLess)(int, int)) {
// ...
if ( (*IsLess)(a[i],a[i+1]) )
Исходная версия bormant, :
А в паскалеподобных было бы так:
не совсем. В паскалях либо явно ^тип
, либо через явно именованный тип. Ну и до кучи, раз был помянут, тип указателя на функцию; получение самой точки входа в зависимости от диалекта по @func или просто по имени func.
type
PInteger = ^Integer;
LessFunc = function (a, b: Integer): Boolean;
procedure sort_(a: array of Integer; IsLess: LessFunc);
// ...
if IsLess(a[i],a[i+1]) then // ...
var
a, b: ^Integer;
c, d: PInteger;
За синтаксис указателей на функции вообще бить нужно
А этот синтаксис там не специальный какой-то, он из-за установленного приоритета операций сам таким получился.
void sort_(int* a, int n, bool (*IsLess)(int, int)) {
// ...
if ( (*IsLess)(a[i],a[i+1]) )