EBFE: software internals
Вот и решение: int (*magic(int (*arg[4])(int, int)))(int, int) { static int idx = 0; int _i = idx; return arg[idx = (idx + 1) % 4, _i]; }
Тут очень интересно, что стоят скобочки и аргументы возвращаемой функции. плюч я добавил использование оператора , (запятая).
EBFE: software internals
Вот и решение: int (*magic(int (*arg[4])(int, int)))(int, int) { static int idx = 0; int _i = idx; return arg[idx = (idx + 1) % 4, _i]; }
Мой хороший товарищ заметил, что в этом решении используется static - типо, глобальная переменная. Я считаю, что static переменные в функции располагаются действительно там же где и глобальные переменные, однако с точки зрения языка они ими не являются - в общем дискуссионая тема. Однако он же предложил очень интересное решение без использования static:
int (*magic( int (*arg[])(int, int) ))(int, int)
{
int (*tmp)(int, int);
tmp = arg[0];
arg[0] = arg[1];
arg[1] = arg[2];
arg[2] = arg[3];
arg[3] = tmp;
return tmp;
}
#книга Всем привет! Я никуда не пропал - было много интересной и срочной работы, так что увы. Сегодня у нас на прекрасная толстенная книга по алгоритмам. Считаю её лучшей в этой теме. Она огромная, там есть всё что нужно от сортировки, до графов и A* - последние кстати используется в играх для определения пути юнитов на локации и обходе препятствий - было классно его в своё время реализовать (ещё в Delphi на паскале в 9м классе). В общем книга отличная - хороша и как учебник и как справочник. Крайне рекоммендую. Всем. Кода там нет - а именно описание алгоритмов - так что можно водить на чём угодно. Дерзайте!
👍1
Очередная задача на ночь:
В этот раз всё просто - (код на языке С, global scope) что такое x, y и z?
В этот раз всё просто - (код на языке С, global scope) что такое x, y и z?
x;
int (*y)(int (*)());
void(z[])() = {0, 0, 0};
ВНИМАНИЕ! у меня чп. Не могу пока добраться до компа. Лекции не будет, но я сделаю лекцию в виде видео и отправлю вам сюда.
❤🔥2❤1
Лекция по объектам синхронизации в Windows: https://disk.yandex.ru/i/G3YHfRXm3DZR_A
Яндекс Диск
winapi_sync.mkv
Посмотреть и скачать с Яндекс Диска
Лекция по созданию окон в Windows: https://disk.yandex.ru/i/tb8yW1b-2t2REg
Яндекс Диск
winapi_windows.mkv
Посмотреть и скачать с Яндекс Диска
ВСЕМ МОИМ СТУДЕНТАМ! все лабы в LMS - прошу активно работать!
❤4😢1
smart1.h
16.8 KB
Всем привет! Я считаю что самое прикольное программирование - это программирование графики. Там и ошибки веселые и результат сразу виден. Решил поделиться с вами кодом, который позволяет рисовать в окошке винды на минималках. Зато просто доступ к памяти с пикселями. Можно даже простенькую игру запилить. Код простой - родился в процессе подготовки обучающей лекции - код содержит ошибки, но работать можно сразу. Из бонусов - есть консоль и работает printf параллельно с консолью. Для запуска в вижуалке надо создать пустой проект - закинуть эти два файла и поставить Properties->Linker->System->Subsystem в значение Windows. Творите! и делитесь результатами в комментариях!
👍1🤓1😎1