From 0d859c55124f2726a1eb981bbe8f2cfa0a58f666 Mon Sep 17 00:00:00 2001 From: Gregory Lirent Date: Wed, 17 Aug 2022 09:25:37 +0300 Subject: [PATCH] =?UTF-8?q?Update=20page=20'1.1.=20=D0=A1=D0=B8=D1=81?= =?UTF-8?q?=D1=82=D0=B5=D0=BC=D0=B0=20=D1=82=D0=B8=D0=BF=D0=BE=D0=B2'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Структура типов.md => 1.1. Система типов.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) rename 1.1. Структура типов.md => 1.1. Система типов.md (53%) 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` + +Иными словами, сравнение всегда производится на базе реального значения числа, а не на базе представления данного числа в памяти. +