169 похожих чатов

@Rouse_79 https://github.com/AlexanderBagel/FWZip/blob/8c6882a31ffaa9a23e66e22eaa5b1f7ebfcad43c/zlib_external.pas#L393 Почему Си-шная функция memset, параметр отвечающий за значение заполнения

объявлен как Byte? В оригинале оно int
Или для cdecl так можно делать?

8 ответов

11 просмотров

Это zlib.pas с 2010-ой дельфи, точнее заголовочник, у которого вызовы перенаправлены с обьектника в библиотеку. Как было в оригинале так и осталось.

notme- Автор вопроса
Александр (Rouse_) Багель
Это zlib.pas с 2010-ой дельфи, точнее заголовочник...

значит в оригинальной Си-функции(в той, для которой этот юнит предназначен) этот параметр был char ? Или всё-таки int?

notme
значит в оригинальной Си-функции(в той, для которо...

видимо в тех обьектниках которые шли с 2010-ой был Char ну или просто пролюбили параметр, как у них это часто бывает

int он в оригинале, чтобы не заморачиваться со знаковостью чара, по факту там байт.

notme- Автор вопроса
Boris Usievich
int он в оригинале, чтобы не заморачиваться со зна...

Ага, я уже привёл внутри к байту, но объявлять-то нужно, наверное, как integer всё-таки

потому как согласно man 3 memset Description The memset() function fills the first n bytes of the memory area pointed to by s with the constant byte c. Ну а передача все равно в регистре...

notme
значит в оригинальной Си-функции(в той, для которо...

man 3 memset знает ответ Name memset - fill memory with a constant byte Synopsis #include <string.h> void *memset(void *s, int c, size_t n);

Serg
потому как согласно man 3 memset Description The ...

Вот я бы не стал смотреть man для кроссплатформенного софта, сюрприз будет :) И с каких пор cdecl в 32 битах в регистре? Через стек есесно

Похожие вопросы

Обсуждают сегодня

Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
А чем вам питонисты не угодили?😂
.
79
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
Всем привет. Поделитесь, пожалуйста, опытом. Есть форма, на которой имеется dbgrid и кнопки: добавить, редактировать, удалить. Если нет записей в dbgrid, то кнопки редактирова...
Евгений
5
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Как структуру (из MSVC) в которой описаны битовые поля описать для fasm? Вот например это (fBinary...fDummy2 - это физически 1 DWORD): typedef struct _DCB { DWORD DCBlength;...
Евгений
3
type TExtensions<GExtender>=class function GetExtension<GEntityExtenderType>:GEntityExtenderType; end; function TExtensions<GExtender>.GetExtension<GEntityExtenderType...
zamtmn
9
Всем привет, препод задал вопрос, подскажите пожалуйста, какой адрес инкапсулирует указатель?
Свинка Пеппа
9
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Карта сайта