![]() |
Модераторы: LSD Страницы: (7) Все « Первая ... 2 3 [4] 5 6 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]() ![]() ![]() |
|
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: нет Всего: 17 |
интересно, в каких случаях? мощно выглядят массивы вместе с хэшами и наоборот, например, массивы-хэшей (список пар хэшей) где массив - это просто набор значений, а хэши как индексы... для работы над элементами массивов, есть разные операторы: cross-, hyper-, reduce-, meta-operators (где индексация не важна...) Это сообщение отредактировал(а) gcc - 13.1.2011, 06:00 |
|||
|
||||
mimik |
|
||||
![]() не Rohoss Я ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 1.11.2010 Репутация: нет Всего: 2 |
это не очень удобно, ведь массив мы можем получить и из функций, или надо перед использованием надо смотреть на объявление
к его мнению я прислушиваюсь, но не более
Это сообщение отредактировал(а) mimik - 13.1.2011, 12:52 |
||||
|
|||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: нет Всего: 49 |
||||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: нет Всего: 101 |
если
a[b] === *(a+b) === *(b+a) === b[a], то алгебраически мы должны иметь моноид. для данной структуры операцией является операция сложения указателя с числом, а единицей - 0 поэтому индексация должна вестись с 0. индексация с другого числа - частный случай этого, формально мы работаем со срезами другая точка зрения - индексом мы задаем систему отсчета. тогда 0 нравится любителям локальных координат, а прочие индексы - любителям глобальных как говорит А.Степанов, "depends on the definition" ![]() |
|||
|
||||
Romper |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 7.11.2012 Репутация: 1 Всего: 1 |
Индексация с нуля — техническая оптимизация С, который складывал указатели, но она распространилась везде.
Если подумать, это совсем не естественно. Нужно постоянно держать в памяти этот −1. Почему, чтобы взять пятый элемент, я пишу arr[4]? Разве это удобно? Почему, если в списке 10 элементов, то взять десятый (arr[10]) — ошибка? Если беспокоитесь о производительности, храните указатель на начало массива−1. |
|||
|
||||
Ilya81 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 18.4.2014 Где: ЛО, Всеволожский р-н Репутация: 1 Всего: 4 |
Не исключаю, что неестественны нумерация с нуля, указания сначала адреса назначения, потом источника (функция CopyMemory), 1024 байта в килобайте и многое другое. Но неужели удаётся так прямо и думать об этом годами? Мне как-то всё это как-то стало привычным, и "неестественность" давным давно не замечаю.
|
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 0 Всего: 88 |
тот же порядок что в операторе присваивания -------------------- Обижено школьников: 8 |
|||
|
||||
Ilya81 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 18.4.2014 Где: ЛО, Всеволожский р-н Репутация: 1 Всего: 4 |
Скорее это аналогия с
который повторяет структуру команды процессоров Intel. Но слышал, что в своё время были процессоры с противоположным порядком операндов. Да и в обычной речи мы скорее скажем из пункта A в пункт B, чем в пункт B из пункта A. Но подобные особенности современных процессоров для меня слишком привычны, чтоб замечать, что где-то присутствует такая неестественность. |
|||
|
||||
_zorn_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: нет Всего: 12 |
Ну ёпта. Вы действительно думаете, что ПРОЦЕССОР видит команды в таком виде ? А АМД процессоры в каком виде команды видят ? ![]() Открою для тебя страшную тайну. Процессоры видят команды в виде битов, а ассемблерные мнемоники как раз для людей. И кстати есть еще AT&T-синтаксис и процессор тут совсем не причем. А слышали вы скорей всего о порядке байтов. И это не "в свое время", а есть и сейчас (little/big endian). Процессоров много и они не только в вашем системном блоке... А по части нумерации - при чем тут какие то оптимизации ? В си массив - это просто указатель на область памяти, индекс смещение. Хотите создавайте массивы с размером на 1 элемент больше и индексируйте с 1, кто вам запрещает ? Все таки си это язык с самыми большими возможностями выстрелить себе в ногу ![]() Это сообщение отредактировал(а) _zorn_ - 22.1.2015, 17:17 |
|||
|
||||
Ilya81 |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 18.4.2014 Где: ЛО, Всеволожский р-н Репутация: 1 Всего: 4 |
Ну если я ничего не путаю, то команды процессоров - префиксный битовый код, в котором после кода команды следуют операнды во вполне определённой последовательности. И в процессорах Intel, насколько знаю, в команде копирования данных идёт сначала код/адрес (в зависимости от того, это регистр процессора, RAM или ещё там что) адресата, потом код/адрес источника. Более того, насколько я знаю, в виду того, что коды команд тоже придумываются людьми, то разница между кодами команд и операндами условна, т. е. предопределённые команды для соседних регистров имеют похожий битовый код. И ещё, насколько я знаю, хоть нынче структура самих логических элементов внутри кристалла не имеет полного дискретного аналога, всё ж сами триггеры расположены в определённой последовательности (как и конденсаторы RAM и прочее), поэтому можно вполне чётко сказать о порядке расположения битового кода внутри процессора.
Это вполне вероятно, я просто подразумевал доминирующие нынче процессоры. А Intel, насколько знаю, нынче не слабо потеснил конкурентов, притом и в desktop/серверах, и в мобильных устройствах, и много ещё где.
Но в C# и Java вольностей поменьше будет. Про Objective-C/Swift сказать затрудняюсь. Это сообщение отредактировал(а) Ilya81 - 23.1.2015, 10:04 |
||||||
|
|||||||
Romper |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 7.11.2012 Репутация: 1 Всего: 1 |
||||
|
||||
_zorn_ |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: нет Всего: 12 |
Про RISC процессоры я думаю нету смысла вам говорить. Но AMD же ? У них что все по другому ? При чем тут интел ? Вы про архитектуру х86 сейчас говорите, а не про процессоры интел. Кстати 64 битную архитектуру первыми замутили АМД, и набор инструкций сейчас называются AMD64 ![]() Еще раз - типов процессоров намного больше чем в вашем системном блоке...
Вы о чем сейчас вообще ? О том что у программистов конденсаторы в мозгу расположены так же как в процессоре ? ![]() Есть, но большинство поглядывает на си хотя бы по синтаксису ) Ну и он самый кросплатформенный ![]()
Мой вариант предпочтительней. В вашем еще лишние телодвижения придется делать типа
Да и чревато последствиями если ваш код будет потом кто то дописывать. Ваши привычки он не знает, и будет мусорить перед массивами ) А если вы еще макросов налепите, или стандартные переопределите, то вообще ужас... Это сообщение отредактировал(а) _zorn_ - 25.1.2015, 06:21 |
||||||||
|
|||||||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 0 Всего: 88 |
-------------------- Обижено школьников: 8 |
|||
|
||||
ТоляМБА |
|
|||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: нет Всего: 252 |
|
|||
|
||||
_zorn_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: нет Всего: 12 |
||||
|
||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |