Тема: Спор о типах
KolibriChar остается. Сторонний код или должен быть уже портирован под современные версии Delphi самими разработчиками, или будет компилироваться без изменений в тех версиях Delphi, для которых он предназначен. Код для KolibriOS должен писаться с использованием KolibriChar, ради совместимости со всеми версиями Delphi у потенциальных пользователей SDK.
Попробую ещё один раз объяснить, иначе как ты сам говоришь "медицина бессильна"
Если не объявить в ОДНОМ месте в модуле KolibriOS
type
Char = AnsiChar;
то тогда придётся объявлять так ВЕЗДЕ, где есть сторонний код, который портирован, который работает с новыми версиями и т.д. и т.п.
пример привёл уже, ты снова похоже не читал
program TestChar;
{$APPTYPE CONSOLE}
type
Char = AnsiChar; <<--- вот это придётся делать для KolibriOS
var
C: Char;
Arr: array[Char] of Char;
begin
for C := Low(Arr) to High(Arr) do
begin
Write(ord(C), #10);
end;
ReadLn;
end.
а можно так
type
Char = AnsiChar; <<--- вот это придётся делать для KolibriOS
не делать в КАЖДОМ проекте, а сделать только в модуле KolibriOS и тип Char переопределится автоматически при подключении модуля KolibriOS, CRT тоже использует этот модуль.
может ещё скажешь, надо KolibriString выдумать
В общем, если и когда вдруг появится у меня время, то я буду делать по-нормальному.
У меня будет самый обыкновенный Char, Dword и Qword.
Насчёт знаковых типов, возможно, по аналогии с MASM, с префиксом Signed.
То есть будет так:
знаковые: SByte, SWord, SDword, SQword
беззнаковые: Byte, Word, Dword, Qword
должно быть логично и не должно возникать неоднозначностей.
Например, как в
Go
int8, int16, int32, int64
uint8, uint16, uint32, uint64
float32, float64
Rust
i8, i16, i32, i64
u8, u16, u32, u64
f32, f64
C
int8_t, int16_t, int32_t, int64_t
uint8_t, uint16_t, uint32_t, uint64_t
float, double