Update page '1.1. Система типов'

Gregory Lirent 2022-08-17 09:25:37 +03:00
parent 8abe87191c
commit 0d859c5512

@ -1,4 +1,4 @@
## руктура типов
## Система типов
В проекте используются различные между собой (в первую очередь, с точки зрения управления памятью) 10 системных целочисленных типов:
@ -28,5 +28,19 @@
- **[vtype_set](https://gogs.lirent.ru/lirent/libcdsb/wiki/2.5.+vtype_set)**
- **[vtype_dict](https://gogs.lirent.ru/lirent/libcdsb/wiki/2.2.+vtype_dict)**
Каждому из вышеперечисленных типов, соотвествует константа, установленная в рамках перечисления **vtype**, которая, в свою очередь определяет поведение ряда контейнеров (ячеек внутри контейнеров) или должна обрабатываться пользователськом коде, для однозначного определения типа поступивших данных.
Каждому из вышеперечисленных типов, соотвествует константа, установленная в рамках перечисления **vtype**, которая, в свою очередь, определяет поведение ряда контейнеров (ячеек внутри контейнеров), а также должна обрабатываться пользователським кодом, для однозначного определения типа поступивших данных.
Деталью, требующей дополнительного упоминания, является принцип сравнения системных числовых типов, что является важным аспектом при поиске значений, внутри контейнеров. Так,
`(vtype_bool)1 == (vtype_int64)1`
`(vtype_pointer)0x00007777 == (vtype_uint16)0x7777`
`(vtype_float)0.25 == (vtype_ldouble)0.25`
`(vtype_double)13.0 == (vtype_int32)13`
но
`(vtype_int8)-1 != (vtype_uint8)0xff`
Иными словами, сравнение всегда производится на базе реального значения числа, а не на базе представления данного числа в памяти.