#полезное
👍 Нашёл Lode's Computer Graphics Tutorial — это обширный и практичный ресурс для изучения основ компьютерной графики
Каждый раздел сопровождается подробными объяснениями и примерами кода на C++ с использованием библиотеки SDL, что делает материал доступным для практического освоения. Особенно полезен раздел о рейкастинге, который шаг за шагом объясняет, как построить простой 3D-движок, как в Wolfenstein 3D
Тык сюда
👉 Новости 👉 База вопросов
Каждый раздел сопровождается подробными объяснениями и примерами кода на C++ с использованием библиотеки SDL, что делает материал доступным для практического освоения. Особенно полезен раздел о рейкастинге, который шаг за шагом объясняет, как построить простой 3D-движок, как в Wolfenstein 3D
Тык сюда
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😵💫 Если ты уже хорошо разбираешься в C, переходи к SoC.
Это развитие текущей архитектуры с большей эффективностью по памяти, энергии и вычислениям.
Важно учитывать это с позиции системного мышления
Тык сюда
👉 Новости 👉 База вопросов
Это развитие текущей архитектуры с большей эффективностью по памяти, энергии и вычислениям.
Важно учитывать это с позиции системного мышления
Тык сюда
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2🔥1
#полезное
👋 Вот «Ray Tracing за один уикенд». Прекрасный небольшой ресурс, чтобы за один уикенд узнать многое о графических вычислениях. Если на выходных нечем заняться — теперь есть.
Источник
👉 Новости 👉 База вопросов
Источник
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#полезное
🫡 Stack vs Heap в C (кратко):
Stack:
Используется для автоматической памяти — локальных переменных, параметров функций, адресов возврата.
Быстрый, ограничен по размеру, управляется автоматически (LIFO).
Heap:
Используется для динамического распределения памяти с помощью malloc/free. Медленнее, больше по объёму, управление вручную. Возможны утечки памяти и фрагментация
👉 Новости 👉 База вопросов
Stack:
Используется для автоматической памяти — локальных переменных, параметров функций, адресов возврата.
Быстрый, ограничен по размеру, управляется автоматически (LIFO).
Heap:
Используется для динамического распределения памяти с помощью malloc/free. Медленнее, больше по объёму, управление вручную. Возможны утечки памяти и фрагментация
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡2❤1
#полезное
🏠 std::valarray
👉 Новости 👉 База вопросов
std::valarray оптимизирован для работы с массивами чисел и поддерживает эффективные векторные операции, что делает его полезным для научных вычислений и обработки данных.Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 Наглядное видео о том, как исходный код компилируется в исполняемый файл
Не знать, как компилируется твой код — всё равно что ехать на машине с завязанными глазами
👉 Новости 👉 База вопросов
Не знать, как компилируется твой код — всё равно что ехать на машине с завязанными глазами
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🥰1
#полезное
😇 Я недавно нашёл классный способ поддерживать "лямбды" в C
Без аллокаций, работает с любым типом массива, "автоматический захват" переменных, поскольку это просто простая генерация кода
На втором фото несколько примеров с однострочными, многострочными и с "захваченными" переменными
На 3 фото пример использован в реальном коде (адаптирован под кастомный тип массива, который просто ptr + len)
👉 Новости 👉 База вопросов
Без аллокаций, работает с любым типом массива, "автоматический захват" переменных, поскольку это просто простая генерация кода
На втором фото несколько примеров с однострочными, многострочными и с "захваченными" переменными
На 3 фото пример использован в реальном коде (адаптирован под кастомный тип массива, который просто ptr + len)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #Cplus
🤔 Что такое прототип функции в С++?
Прототип функции в С++ — это декларация функции, которая указывает ее имя, тип возвращаемого значения и типы параметров. Это позволяет компилятору проверять правильность вызова функции до ее определения.
👉 Новости 👉 База вопросов
Прототип функции в С++ — это декларация функции, которая указывает ее имя, тип возвращаемого значения и типы параметров. Это позволяет компилятору проверять правильность вызова функции до ее определения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
#полезное
🤯 std::indirectly_
readable_traits
👉 Новости 👉 База вопросов
readable_traits
std::indirectly_readable_traits (C++20) используется внутри концептов и обобщённых алгоритмов для извлечения типа значения, на который "указывает" итератор или указатель. Это полезно при написании обобщённых (generic) алгоритмов и своих концептов.Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
#полезное
🛞 Создание простого клиент-серверного приложения на UDP в C
Здесь мы рассмотрим, как настроить базовый UDP-сервер и клиент на языке C, сосредоточив внимание на механике работы за кулисами - гайд
👉 Новости 👉 База вопросов
Здесь мы рассмотрим, как настроить базовый UDP-сервер и клиент на языке C, сосредоточив внимание на механике работы за кулисами - гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡1❤1
#полезное
🥄 Напоминание: лучший способ чему-либо научиться — делать собственные проекты.
Этот репозиторий содержит большинство проектов, какие только можно представить, и множество языков для их реализации.
Многие из них — на C, другие — на Assembly, и каждый из них даст вам мощную прокачку.
👉 Новости 👉 База вопросов
Этот репозиторий содержит большинство проектов, какие только можно представить, и множество языков для их реализации.
Многие из них — на C, другие — на Assembly, и каждый из них даст вам мощную прокачку.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#Собес #Cplus
🤔 Расскажите про стек в контексте С++
Стек в С++ - это адаптер контейнера, работающий по принципу LIFO (Last In, First Out), где последний элемент, добавленный в стек, будет первым, который из него извлечет.
👉 Новости 👉 База вопросов
Стек в С++ - это адаптер контейнера, работающий по принципу LIFO (Last In, First Out), где последний элемент, добавленный в стек, будет первым, который из него извлечет.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
😎 Представьте себе написание сложной разветвлённой логики без единого оператора
Можешь ознакомиться с этим гайдом о сопоставлении с образцом
👉 Новости 👉 База вопросов
if. Я уже некоторое время работаю с сопоставлением с образцом, но с новым языком, не C/C++Можешь ознакомиться с этим гайдом о сопоставлении с образцом
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
🥺 Сегодня получил интересный вопрос: что быстрее —
Ответ: n++ читает стек 3 раза, в то время как ++n и n + 1 — 4 раза.
Тесты были проведены на следующем коде (смотри фото):
++n и n + 1
Для
> n инкрементируется на стеке
> значение n загружается в регистр
> регистр сохраняется в dummy на стеке
n++
Для
> n загружается в регистр-1
> регистр-1 инкрементируется и результат сохраняется в регистр-2
> регистр-2 сохраняется обратно на стек (обновлённое значение n)
> регистр-1 сохраняется на стек в dummy (исходное значение n)
Может показаться, что код для n++ содержит больше инструкций и поэтому должен быть медленнее, но это не так.
На практике не существует такого понятия, как «инкремент на стеке» — значение фактически загружается в процессор, инкрементируется там, а затем записывается обратно.
Если посчитать обращения к стеку (чтения и записи):
> ++n и n + 1: чтение, запись, чтение, запись — 4 обращения к стеку
> n++: чтение, запись, запись — 3 обращения к стеку
Поскольку чтение из регистра значительно быстрее, чем из стека, это делает n++ более быстрым вариантом.
👉 Новости 👉 База вопросов
n++, ++n или n + 1 ?Ответ: n++ читает стек 3 раза, в то время как ++n и n + 1 — 4 раза.
Тесты были проведены на следующем коде (смотри фото):
++n и n + 1
Для
dummy = ++n и n = n + 1; dummy = n происходит следующее:> n инкрементируется на стеке
> значение n загружается в регистр
> регистр сохраняется в dummy на стеке
n++
Для
dummy = n++ происходит следующее:> n загружается в регистр-1
> регистр-1 инкрементируется и результат сохраняется в регистр-2
> регистр-2 сохраняется обратно на стек (обновлённое значение n)
> регистр-1 сохраняется на стек в dummy (исходное значение n)
Может показаться, что код для n++ содержит больше инструкций и поэтому должен быть медленнее, но это не так.
На практике не существует такого понятия, как «инкремент на стеке» — значение фактически загружается в процессор, инкрементируется там, а затем записывается обратно.
Если посчитать обращения к стеку (чтения и записи):
> ++n и n + 1: чтение, запись, чтение, запись — 4 обращения к стеку
> n++: чтение, запись, запись — 3 обращения к стеку
Поскольку чтение из регистра значительно быстрее, чем из стека, это делает n++ более быстрым вариантом.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1