возможно ли передать ноль в качестве необъявленной константы нетипизированному параметру некоторой функции?
У меня есть такие функции, и я хотел бы передать некоторую константу параметру Data
для удовлетворения компилятора. Внутренне я выбираю параметр Size. Я знаю, что могу использовать указатель вместо нетипизированного параметра, но в моем случае это намного удобнее.
Теперь я получаю E2250 There is no overloaded version of 'RS232_SendCommand' that can be called with these arguments
function RS232_SendCommand(const Command: Integer): Boolean; overload;
begin
// is it possible to pass here an undeclared constant like nil in this example?
Result := RS232_SendCommand(Command, nil, 0);
end;
function RS232_SendCommand(const Command: Integer; const Data; const Size: Integer): Boolean; overload;
begin
...
end;
Это работает, но я был бы рад, если бы я мог оставить объявление переменной.
function RS232_SendCommand(const Command: Integer): Boolean; overload;
var
Nothing: Pointer;
begin
Result := RS232_SendCommand(Command, Nothing, 0);
end;
Решение - использовать что-то подобное.
function RS232_SendCommand(const Command: Integer): Boolean; overload;
begin
// as the best way looks for me from the accepted answer to use this
Result := RS232_SendCommand(Command, nil^, 0);
// or it also possible to pass an empty string constant to the untyped parameter
// without declaring any variable
Result := RS232_SendCommand(Command, '', 0);
end;
Я делаю это, потому что некоторые из моих команд имеют данные, отправленные после передачи команды.
Спасибо за помощь