Решил написать статью об указателях на методы классов. Недавно мне пришлось столкнуться с тем, как они работают изнутри, когда писал некоторые вещи ориентированные под компилятор. Эти указатели работают не совсем как обычные указатели, не имеют возможности быть приведенными в void, и часто имеют размер больше 8 байт. Информации на эту тему в интернете я нашел относительно немного, потому решил разобраться сам.
Особенно пугают такие страшилки, которые мало что объясняют о том как происходит на самом деле и почему, а лишь пытаются приучить программиста слепо следовать требованиям.
Давайте разберемся что и почему происходит.
Все манипуляции будут произведены для архитектуры x86-64.
А теперь в подробностях. Когда я писал о том, что функция вызывается, или данные передаются в функцию, то умышленно упускал из виду один момент.
Например, когда вызывается функция, то процессор перепрыгивает с текущего адреса, на которым он находится, на адрес функции. И выполнение программы продолжается с того адреса. После того, как функция закончила работу,
... Читать дальше »
Перед Вами новая статья серии "Что такое алгоритм?". И снова непростая задача. Нам необходимо "нырнуть глубже" в структуры памяти живого организма. К сожалению, в ракурсе, предлагаемом статьёй, это направление еще исследовано слабо. Что делает материал, приведённый далее, более сложным по сравнению с излагаемым в предыдущих частях, в которых использовалась близость с методами "генетических алгоритмов", автоматизированных систем управления, систем машинного обучения с учителем и подкреплением. Поэтому прокладывать тропинку в глубь неизведанных "территорий" процессов памяти придется во многом самостоятельно. С одной стороны это очень интересно. Ведь мы с Вами первопроходцы! А с другой стороны есть опасность "заблудиться". Чтобы
... Читать дальше »
Текущее состояние в области программирования — это обучение ремеслу по большей части личной практикой или разборами примеров стороннего кода, с которым по каким-то причинам приходится сталкиваться.
В результате программированию учишься по наитию. Лишь немного в этом труде помогают сборники алгоритмов, прикладных техник и шаблонов проектирования. Общая совокупность предлагаемых ими рецептов выстраивается длинным списком, и его длина грозит каждому из прочитанных приемов быть позабытым (как была забыта 53-яя личная группа в "телеге" до введения разбиения по каталогам). Но даже тот прием, который остался в памяти, чаще всего просто является описанием прикладной задачи, в которой было успешно его использование.
Почему конкретный прием был успешен в задаче-образ
... Читать дальше »
В этой статье я расскажу о 10 советах Excel, которые вы можете использовать для повышения производительности и облегчения своей рабочей жизни. Убедитесь, что вы прочитали весь список, так что вы можете найти советы, которые будут наиболее полезны для вас.
Я буду прыгать прямо в действие ниже. Обязательно сделайте закладку на эту страницу, чтобы вернуться сюда, если вы забудете какие-либо полезные советы, которыми я поделюсь.
Парадокс в том, что даже многие опытные пользователи Excel оставляют её без внимания. Но я считаю, что к ней нужно обращаться, как минимум, дважды: в самом начале изучения Excel (чтобы значительно облегчить себе этот путь) и в момент, когда пользователь начинает считать себя опытным (чтобы раз и навсегда закрепить этот материал).
Что мы считаем ошибкой в Excel? Это ситуация, когда прописанная формула вместо результата выдает нечто неприятное из списка ниже:
Программирование всегда связано с решением различных задач. Я подготовил список из шести различных заданий и отсортировал их по сложности решения. Первая — самая простая, шестая — самая сложная. Сможете разобраться со всеми?
В конце статьи я также разместил решения, выполненные на языке PHP. Вы же можете выбрать для этого другой язык.
MBR Master Boot Record это первые 512 Байт диска, это не раздел, не партиция это участок места в начале жесткого диска, зарезервированный для загрузчика Операционной системы и таблицы разделов.
Когда компьютер включается BIOS производит тестовые процедуры. После чего, передает код управления начальному загрузчику, который как раз расположен в первых байтах MBR. Причем, какому жесткому диску передавать управление мы определяем самостоятельно в соответствующих настройках BIOS. MBR это очень важная часть нашего жесткого диска, потеря его чревата потерей данных с нашего жест
... Читать дальше »
Теория игр — сравнительно молодой математический метод, он появился в 40-х годах прошлого века. Но различные закономерности во взаимоотношениях сторон, борющихся за свои интересы, конечно же, отмечались значительно раньше. Авторы теории игр перевели то, что было известно психологам, экономистам, да и просто думающим людям, на язык математики. Постепенно теория игр стала междисциплинарной. Безусловно, можно (и нужно!) применять ее и в быту. Мы и применяем — как правило, интуитивно. Если же познакомиться с самой теорией, можно узнать немало полезного о том, как отстаивать свои интересы, налаживать взаимовыгодные партнерские отношения, избегать конфликтных ситуаций… Парадоксально, но факт: даже проигрыш может стать основой успеха!
Предлагаем прочитать фрагмент главы, посв
... Читать дальше »