diff --git a/1.1. Структура типов.md b/1.1. Система типов.md similarity index 53% rename from 1.1. Структура типов.md rename to 1.1. Система типов.md index fb430f0..3d33aac 100644 --- a/1.1. Структура типов.md +++ b/1.1. Система типов.md @@ -1,4 +1,4 @@ -## Cтруктура типов +## Система типов В проекте используются различные между собой (в первую очередь, с точки зрения управления памятью) 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` + +Иными словами, сравнение всегда производится на базе реального значения числа, а не на базе представления данного числа в памяти. +