TYPE, теория, теория и еще раз Теория... только теперь для новичков
или то что учат сами .. в пихнем в вам в рот разжованое и ..
ТУТ НИКАКИХ ПРАКТИЧЕСКИХ ПРИМЕРОВ ТОКА ТЕОРИЯ - ВСЕ ОСТАЛЬНОЕ .. эх.. ! RTFM ! все ето для того чтобы вы поняли что ето и зачем что такое type ? теоритически с внешней стороны type ето тип переменой (ето я из pascalя выучил) но на blitz3d и языках выше (C++) type (или его подобие - struct) ето уже что-то полутче чем просто тип переменой хотя для пользователя все же ето только тип переменой с дополнительными фичами обычные типы переменых - например int предположим что существует некоторый тип переменой int2 такой тип переменой содержит в себе два int'а которые могут содержат разные значение (т.е. не зависят друг от друга но принадлежат одной переменой) теперь представим что у нас есть теоритический масив : dim MYVAR_int2_ (255) в масиве под названием MYVAR есть 256 переменых типа int2 то есть 512 intов в итоге (каждая переменая из MYVAR содержит два int'а) и теперь самое главное - мы можем прочитать и изменить любой из етих intов ! думаю в общем ето понятно ? теперь как работает type именно в blitz3d как мне извесно, type система в blitz3d основана внутри на связаном списке простым языком обьясню что такое связаный список (действительно обладая только средствами blitz3d обьяснить ето сложно - нужны указатели) предположим что у нас есть "динамический" массив MYDIM и существует ряд функций позволяющий в любой момент провести с етим массивом такие операции : 1) добавить новый елемент в конец,начало,в любую позицию масива (все остальные елементы автоматически "перемещаются") 2) удалить любой елемент массива, где бы он небыл 3) прочитать любой елемент массива вы думаете тогда что функции 1 и 2 будут выполнятца медлено ? вовсе нет ! они настолько быстры что делают где-то 10-15 комманд (и пару маленьких циклов) идинственое что функция 3 будет слегка медленовата... только вот тут и загвоздка - мы не можем просто так обратится к елементу номер 5 в связаном списке тут нужно перебрать от начала все 4 елемента пока не дойдем то номера 5 но такие операции тоже довольно быстры (есть много мест для оптимизаций) тоесть в общем мы получаем так сказать теоретически связаный список из переменых нашего типа т.е. в любой момент мы можем провести операции 1,2,3 и в любой момент обратившись к содержимому самой функции изменить ее "внутрености" сам type, или реальность и нереальность что же нам type принес к примеру : Код:
type mla мы имеем переменую с типом mla, к примеру VAR1 для нас существует внешне только VAR1... но мы можем обратится к ней и изменить или прочитать любой a1,a2,a3,..,ax ! а теперь представим что VAR1 ето масив.. мы имеем теперь неизменяемое количество переменых типа mla... и у каждой переменой мы можем изменить или прочитать a1,a2,a3,..,ax а теперь .. мы имеем динамический масив VAR1 ! мы можем проводить операции 1,2,3 над ним (следует заметить что такой масив изначально внутри языка пуст и содержит только сервисную инфу - 2 int'а, хотя может быть и больше) а зачем ето все ? чтобы было удобнее программировать ! вот к примеру вполне реальны конструкции типа : dim MyNpc__Npc_AiStatus%(MAX_NPC) dim MyNpc__Npc_...%(MAX_NPC) dim MyNpc__Npc_...%(MAX_NPC) dim MyNpc__Npc_...%(MAX_NPC) человеческая логика пошла дальше : мы придумываем тип переменой MyNpc куда скидываем все переменые Npc_AiStatus и тд и получаем dim Npcs_MyNpc_(MAX_NPC) а что если мы заранее не знаем максимальное количество возможных npc ? и вообщем ЗАЧЕМ выделять под них память ? вот зачем тратить память под 600 npc когда на карте бегает 5 ? для етого и придумали связаный список вообщем я думаю теоретически тут все понятно :) а вот практически пока хз мож если еще раз прийдет такая жалость к другому прогеру то и практический тутор на калякаю и ваще могу связаные списки на низкоуровневой структуре описать типа в представлении jimonа vs microsoft напечатано jimon publishing по заказу F@nt :-) all rights (c) ! >>:( |
Re: TYPE, теория, теория и еще раз Теория... только теперь для новичков
Касательно введения (только введения) в структуры Б3Д, а также использование и анологии связанных списков - http://www.boolean.name/showthread.php?t=1253
|
Re: TYPE, теория, теория и еще раз Теория... только теперь для новичков
[offtop слегка]
предлагаю топики направления разжовывания "очевидных" вещей (вещи то очевидные... тока вот на asm по ним можно толмуд в пару томов писать) приписывать к серии "теория, теория и еще раз Теория... только теперь для новичков" просто название то появилось само собой при писании а теперь подумал, оказывается что так довольно много статей написать можно [/offtop слегка] |
Re: TYPE, теория, теория и еще раз Теория... только теперь для новичков
Цитата:
|
Часовой пояс GMT +4, время: 11:07. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot