ch
Feedback
Библиотека C/C++ разработчика

Библиотека C/C++ разработчика

前往频道在 Telegram

Полезные материалы по всему, что может быть полезно плюсовику/сишнику. По всем вопросам @evgenycarter

显示更多
7 322
订阅者
-324 小时
+57
+1230
帖子存档
📕Открытый урок об управлении микроклиматом с помощью микроконтроллеров для радиолюбителей, разработчиков встраемого ПО, инже
📕Открытый урок об управлении микроклиматом с помощью микроконтроллеров для радиолюбителей, разработчиков встраемого ПО, инженеров, разработчиков электроники и инженеров-схемотехников. На открытом уроке 21 апреля в 20:00 мск мы погрузимся в тонкости подключения и программировании системы управления микроклиматом с помощью микроконтроллеров. 📗В результате вы: - Узнаете, как подключить к микроконтроллеру и запрограммировать датчики температуры, влажности и исполнительное устройство; - Разберетесь, как сделать прототип системы, которая управляет микроклиматом сама; - Освоите на практике техники управления макетом по WiFi с мобильного телефона или компьютера с помощью создания простого web-сайта. Спикер Игорь Морозов — эксперт в сфере Embedded Development, 15+ лет в разработке и управлении IT-проектами, технический директор стартапа по созданию робототехнических устройств с элементами машинного зрения. 👉Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cKX0zr 📙Все участники открытого урока получат скидку на курс "Embedded Developer" Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Практика языка C (МФТИ, 2023-2024). Допсеминар: системы сборки (make, cmake). 00:00 Зависимости и хедера 08:22 Build.sh 11:48 Makefiles и декларативная модель 19:51 Ленивые и переменные 30:52 Автоматические переменные 36:15 Первая версия makefile 41:33 Функции и wildcards 47:40 Вторая версия makefile и зависимости от хедеров 56:36 Третья итерация: почти идеальный makefile 01:06:26 Знакомство с cmake 01:19:35 Бонус. Немного больше про cmake. 01:30:40 Окончательные уроки. источник #cpp #programming 👉 @cpp_lib

🌌 Путешествие в мир Авроры: создаём приложения с Qt/QML 🚀 Российская мобильная ОС Аврора — перспективная платформа для разр
🌌 Путешествие в мир Авроры: создаём приложения с Qt/QML 🚀 Российская мобильная ОС Аврора — перспективная платформа для разработчиков. Хотите узнать, как создавать для неё нативные приложения с помощью Qt/QML? Разбираем всё на открытом вебинаре! 📅 22 апреля в 20:00 🎓 Открытый вебинар с Ксенией Лагутиной 💡 Что разберём? ✅ Почему ОС Аврора — интересная среда для разработки ✅ Как работает Аврора SDK и чем поможет разработчику ✅ С чего начать разработку нативных приложений ✅ Как создать мини-приложение на QML, которое отправляет уведомления в систему 🎯 Что получите? ✔️ Понимание ключевых особенностей ОС Аврора ✔️ Навыки работы с Аврора SDK и Аврора IDE ✔️ Практический опыт создания приложения на QML Присоединяйтесь и погружайтесь в разработку под Аврору! 👉 Регистрируйтесь по ссылке: https://vk.cc/cKVg3i Бесплатное занятие приурочено к старту курса Разработка прикладного ПО на Qt и ОС «Аврора», обучение на котором позволит освоить кросс-платформенный фреймворк Qt. Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Как создать собственное расширение компилятора C++ Создание пользовательского расширения компилятора C++ подразумевает понима
Как создать собственное расширение компилятора C++ Создание пользовательского расширения компилятора C++ подразумевает понимание базовых механизмов работы компиляторов, изменение или расширение их функциональности и бесшовную интеграцию этих изменений в существующую инфраструктуру компилятора. Это руководство проведет вас через весь процесс, от понимания основ до внедрения и тестирования вашего пользовательского расширения. Целевая аудитория этого руководства — разработчики, которые уже знакомы с C++ и имеют базовое понимание концепций компилятора. https://habr.com/ru/articles/870840/ original https://www.w3computing.com/articles/how-to-create-a-custom-cpp-compiler-extension/ #cpp #programming 👉 @cpp_lib

Делаем собственный анализатор C++ кода в виде плагина для Clang Есть много проектов, целью которых является превратить С++ бо
Делаем собственный анализатор C++ кода в виде плагина для Clang Есть много проектов, целью которых является превратить С++ более "безопасный" язык программирования. Но внесение изменений в синтаксис языка обычно нарушает обратную совместимость со старым кодом, который был написан до этого. Недавно вышла новая версия библиотеки memsafe для языка С++, которая превращает его в Rust с помощью плагина Clang добавляет в С++ безопасное управление динамической памятью и контроль инвалидации ссылочных типов данных во время компиляции приложения. Но данная статья не о библиотеке, а об особенностях разработки анализатора программы на С++ в виде плагина для Clang. Можно считать, что это подведение итогов по результатам сравнения нескольких разных способов создания плагина для компилятора С++, а так же очередной Хабрахак для хранения результатов экспериментов и публикации итоговых выводов, которые я решил сохранить не только для себя, но и в виде статьи на Хабре, что бы результатами моего труда могли воспользоваться и другие хорошие люди :-), которым так же может потребоваться погрузиться в дебри парсинга исходного текста программ. https://habr.com/ru/articles/900224/ #cpp #programming 👉 @cpp_lib

Пишем сканер штрихкодов на c++ Штрихкод и с чем его едят на плюсах. Сегодня я покажу вам как я писал простейший сканер штрихк
Пишем сканер штрихкодов на c++ Штрихкод и с чем его едят на плюсах. Сегодня я покажу вам как я писал простейший сканер штрихкодов EAN-8 и EAN-13. Конечно, я мог бы взять готовые и более функциональные сканеры из интернета, НО зачем? Зачем, если можно сделать самому, если можно развить свои навыки и расширить портфолио? Вот и я так подумал... Если вы заинтересовались - я сейчас вам раскачаю про код... https://habr.com/ru/articles/891238/ #cpp #programming 👉 @cpp_lib

🚀 Подпишись и прокачай свои скилы: лучшие каналы для IT-специалистов 👨‍💻📲 Папка с каналами для DevOps, Linux - Windows СисАдминов 👍 Папка с каналами для 1С программистов 🧑‍💻 Папка с каналами для C++ программистов 👩‍💻 Папка с каналами для Python программистов 👩‍💻 Папка с каналами для Java программистов 🖥 Папка с книгами для программистов 📚 Папка для программистов (frontend, backend, iOS, Android) 💻 GitHub Сообщество 🧑‍💻 https://t.me/Githublib Интересное из GitHub Базы данных (Data Base) 🖥 https://t.me/database_info Все про базы данных Разработка игр 📱 https://t.me/game_devv Все о разработке игр БигДата, машинное обучение 🖥 https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning QA, тестирование 🖥 https://t.me/testlab_qa Библиотека тестировщика Шутки программистов 📌 https://t.me/itumor Шутки программистов Защита, взлом, безопасность 💻 https://t.me/thehaking Канал о кибербезопасности https://t.me/xakep_2 Хакер Free Книги, статьи для дизайнеров 🎨 https://t.me/ux_web Статьи, книги для дизайнеров Математика 🧮 https://t.me/Pomatematike Канал по математике https://t.me/phis_mat Обучающие видео, книги по Физике и Математике Excel лайфхак🙃 https://t.me/Excel_lifehack Технологии 🖥 https://t.me/tikon_1 Новости высоких технологий, науки и техники💡 https://t.me/mir_teh Мир технологий (Technology World) Вакансии 💰 https://t.me/sysadmin_rabota Системный Администратор https://t.me/progjob Вакансии в IT https://t.me/rabota1C_rus Вакансии для программистов 1С

🔹 C++26: ошибочное поведение (Erroneous Behaviour) В C++ мы обычно говорим о двух категориях поведения: – определённое поведение (well-defined) – неопределённое поведение (undefined behaviour, UB) Второе — одно из самых пугающих понятий в языке. Это когда программа делает что угодно, и компилятор не обязан предупреждать о проблеме. Примеры UB: выход за границы массива, разыменование нулевого указателя и т.д. Однако в будущем стандарте C++26 вводится новая категория: ошибочное поведение (erroneous behaviour). ❓ Что такое erroneous behaviour? Это ситуация, когда программа ведёт себя неправильно, но компилятор обязан выдать ошибку или хотя бы предупреждение. Это промежуточный уровень между "всё хорошо" и "всё ужасно и не предсказуемо". Erroneous behaviour позволяет: - Сохранить производительность (в отличие от полного исключения или runtime-проверок) - Сделать поведение программы более предсказуемым - Упростить диагностику проблем 📌 Пример Допустим, в constexpr-функции вызывается функция, не являющаяся constexpr. Сейчас это UB, но в C++26 это будет квалифицироваться как erroneous behaviour, и компилятор обязан будет выдать ошибку на этапе компиляции.

constexpr int foo() {
    return std::time(nullptr); // std::time не является constexpr
}
Такой код сейчас может пройти компиляцию при определённых условиях, но в будущем — нет. 🧩 Отличие от UB и других видов поведения - UB — компилятор может делать что угодно (не выдавать ошибку, не предупреждать, и т.д.) - Implementation-defined — конкретная реализация (компилятор) должна задокументировать поведение - Erroneous behaviour — компилятор обязан ругаться 🤔 Почему это важно? Эта категория позволяет более чётко определять границы корректного кода и помогает разработчикам избегать трудноуловимых багов. Это шаг к более строгой и безопасной разработке на C++ без жёстких ограничений на производительность. https://www.sandordargo.com/blog/2025/02/05/cpp26-erroneous-behaviour #cpp #programming 👉 @cpp_lib

📈Плоские контейнеры и C++: как оптимизировать производительность и память Пытаетесь сделать код быстрее и экономичнее? Время
📈Плоские контейнеры и C++: как оптимизировать производительность и память Пытаетесь сделать код быстрее и экономичнее? Время научиться использовать плоские контейнеры в C++! На открытом уроке 15 апреля в 20:00 мск мы разберемся, что такое плоские контейнеры! Что вас ждет: - Описание плоских контейнеров в C++: какие они бывают и чем отличаются от стандартных. - Реальные примеры, когда и почему плоские контейнеры — это ваша идеальная пара для эффективной работы с данными. - Практическая часть: сравнение с традиционными контейнерами и примеры применения на реальных задачах. Кому будет полезно: • Программистам C++, работающим с большими объемами данных. • Разработчикам высокопроизводительных приложений и игр. • Инженерам, которым нужно минимизировать использование памяти и повысить эффективность. 👉Регистрируйтесь прямо сейчас и получите скидку на большое обучение «C++ Developer. Professional»: https://vk.cc/cKG7if Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

👨‍💻 Учебный репозиторий по указателям в C: Минималистичный и очень понятный туториал, охватывающий ключевые аспекты работы с указателями: - базовая работа с указателями - арифметика указателей - работа с массивами через указатели - передача аргументов по ссылке - указатели на функции - двойные указатели Каждый пример — это отдельный .c -файл с подробными комментариями. Можно компилировать и запускать по порядку, чтобы получить последовательное понимание темы. Отличный ресурс как для начинающих, так и для практикующих C-программистов. https://github.com/jflaherty/ptrtut13/tree/master #cpp #programming 👉 @cpp_lib

📦 cpp-sort — это коллекция высокоэффективных алгоритмов сортировки, написанная на C++. Она предоставляет как классические ал
📦 cpp-sort — это коллекция высокоэффективных алгоритмов сортировки, написанная на C++. Она предоставляет как классические алгоритмы (например, quicksort, mergesort), так и более современные, такие как ska_sort и spreadsort. 🔧 Основные особенности: - Простое подключение - Упор на производительность: множество алгоритмов оптимизированы под современные CPU - Совместимость с std::sort и пользовательскими компараторами - Некоторые алгоритмы устойчивы (stable), другие — нет (для повышения скорости) - Поддержка сортировки по ключу (projection) 💡 Если ты работаешь с C++ и тебе нужна кастомная или быстрая сортировка — обязательно стоит взглянуть. Особенно если std::sort не даёт нужного эффекта. https://github.com/Morwenn/cpp-sort #cpp #programming 👉 @cpp_lib

📕Открытый урок об оцифровке сигналов в микроконтроллере ESP32 для радиолюбителей, разработчиков встраемого ПО, инженеров, ра
📕Открытый урок об оцифровке сигналов в микроконтроллере ESP32 для радиолюбителей, разработчиков встраемого ПО, инженеров, разработчиков электроники и инженеров-схемотехников. На открытом уроке 10 апреля в 20:00 мск мы погрузимся в процессы и тонкости оцифровки сигнало на пример микроконтроллера ESP32. 📗 В результате вы: - Узнаете всё об особенностях и нюансах схемотехники при проектировании тракта АЦП; - Поймете, как работать с АЦП на примере ESP32: от расчета погрешностей и калибровки до различных методов фильтрации сигналов; - Научитесь на практике использовать все основные параметры АЦП и увидите их влияние вживую. Спикер Марат Боранбаев — эксперт в сфере Fullstack Embedding, 10+ лет в разработке и преподавании, занимается разработкой для системы бортового радиотехнического комплекса космического аппарата на базе МК STM32. 👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cKBBx8 📙 Все участники открытого урока получат скидку на курс "Embedded Developer" Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Эльбрус стал намного ближе Недавно МЦСТ опубликовала кросскомпилятор для «Эльбрус». Это большой шаг в развитии платформы. Теп
Эльбрус стал намного ближе Недавно МЦСТ опубликовала кросскомпилятор для «Эльбрус». Это большой шаг в развитии платформы. Теперь любой человек может собрать программу под е2к на своем домашнем компьютере. В этой статье вас ждет инструкция по ручному развертыванию всего окружения для разработки под е2к, скрипт для автоматического развертывания, а также Docker-контейнер с готовым окружением. Благодаря контейнеру процесс развертывания упрощается до вызова одной команды, а также он позволяет работать даже на Windows. Если вы хотели попробовать собрать свой код или какой-нибудь другой код под «Эльбрус», то сейчас самое время. https://habr.com/ru/articles/898040/ #cpp #programming 👉 @cpp_lib

Сборка проектов Си и Си++: от простого к сложному. Часть II. Сборщики Продолжаю тему о сборке проектов на Си и Си++, первая ч
Сборка проектов Си и Си++: от простого к сложному. Часть II. Сборщики Продолжаю тему о сборке проектов на Си и Си++, первая часть которой размещена здесь. Рецепты сборки по правилам хорошего тона должны поставляться с проектом и очень желательно, чтобы они не были привязаны к конкретной ОС или хотя бы к конкретному дистрибутиву Linux, используя специфические команды вроде apt-get, yum, emerge. Если это небольшой пет-проект выходного дня, то, конечно, в качестве рецепта сгодится и bash-скрипт. Пользователи адаптируют. Но если к проекту подключаются другие разработчики, то лучше потратить время на автоматизацию сборки, чтобы не терять его оптом в будущем. В этой части речь пойдёт об инструментах, которые используются для автоматизации процесса сборки программного обеспечения. https://habr.com/ru/companies/ruvds/articles/875620/ #cpp #programming 👉 @cpp_lib

Сборка проектов Си и Си++: от простого к сложному. Часть I. Библиотеки Каждый раз, в течение многих лет, собирая пилотную вер
Сборка проектов Си и Си++: от простого к сложному. Часть I. Библиотеки Каждый раз, в течение многих лет, собирая пилотную версию мизерного проекта или простой утилиты, мне кажется, что уж в этот раз точно обойдусь обычным скриптом для сборки, и никакие сборщики проекта мне не понадобятся. Но суровая реальность приводит меня в чувство уже в течение первых нескольких минут работы. Сначала оказывается, что до невозможности простая программка нуждается в JSON-парсере, HTTP-запросах CURL и прочих библиотеках. А по мере возбуждения хотелок эти все зависимости нарастают как снежный ком. И все мечты быстро скомпилировать страничку кода встречают на каждом шаге всё новые и новые проблемы. Вот сегодня и расскажу о том, какие бывают способы борьбы с зависимостями и сборки проекта из множества файлов на Си++. Заодно те, кто не любят Си++, смогут порадоваться «прелестям» этого процесса. И хоть тема очень важная для программистов, но я обратил внимание, что даже многолетний опыт не гарантирует понимания этих процессов. Но сразу предупреждаю — история длинная даже с учетом всех попыток не убегать на смежные темы. https://habr.com/ru/companies/ruvds/articles/871940/ #cpp #programming 👉 @cpp_lib

#cpp #programming 👉 @cpp_lib
#cpp #programming 👉 @cpp_lib

❓ Знали, что разработчики на С++ тоже могут эффективно автоматизировать инфраструктуру с помощью Terraform и GitLab? ⏰ 3 апре
❓ Знали, что разработчики на С++ тоже могут эффективно автоматизировать инфраструктуру с помощью Terraform и GitLab? ⏰ 3 апреля в 20:00 мск на открытом уроке Вячеслав Федосеев объяснит, как разработчикам на С++ настроить CI/CD-пайплайны, управлять конфигурациями и легко разграничивать окружения. Вячеслав — эксперт в IT с 2006 года, прошёл путь от первых Linux-серверов до масштабных DevOps-решений. Автор и ментор курсов по CI/CD и DevOps-практикам. Если вы С++ разработчик, хотите упростить инфраструктуру ваших проектов и ускорить процессы — урок точно для вас. Освойте актуальные практики IaC и получите навыки, которые повысят вашу востребованность. 🎁 Участникам вебинара дарим скидку на полный курс по CI/CD на основе GitLab. 👉 Для участия зарегистрируйтесь Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Можно ли навсегда избавиться от утечек памяти из-за циклических ссылок? В комментариях к статье в очередной раз услышал мнени
Можно ли навсегда избавиться от утечек памяти из-за циклических ссылок? В комментариях к статье в очередной раз услышал мнение, что поскольку невозможно в принципе гарантировать отсутствие циклических ссылок при статическом анализе кода, то в языке Rust утечки памяти из-за циклических ссылок считаются безопасными, так это не влияет на безопасное управление памятью. При работе с памятью существует много типов ошибок, но единственные ошибки, которые до сих пор не имеют нормального способа решения, это утечки памяти из-за циклических ссылок, когда два или более объектов напрямую или косвенно ссылаются друг на друга, в результате чего доступная приложению оперативная память постепенно уменьшается, так как ее невозможно освободить автоматически. Утечки памяти из-за циклических ссылок являются наиболее сложными для анализа. В то время как для всех остальных типов ошибок при работе с памятью уже найдены и используются различные решения, например на уровне языка программирования, с помощью сборщиков мусора, проверки заимствований или шаблонов библиотек, то проблема утечек памяти из-за циклических ссылок остается нерешенной и по сей день. Но мне кажется, что есть очень простой способ устранить циклические ссылки в программе, который можно реализовать практически в любом типизированном языке программирования, конечно, если при этом не использовать все разрешающее ключевое слово unsafe для Rust или оператор reinterpret_cast в случае С++. https://habr.com/ru/users/rsashka/articles/ #cpp #programming 👉 @cpp_lib

Как работает профилирование Виктор Шампаров Профилировщики — важная часть тулинга, которая помогает программистам или компиляторам делать код быстрее. Известны два подхода к профилированию: инструментирование и сэмплирование. В докладе кратко рассмотрели инструментирование на примере PGO, а на примере perf и иных подобных профилировщиков — сэмплирование. Также обсудили аппаратную поддержку профилирования в некоторых процессорах. источник #cpp #programming 👉 @cpp_lib

📕Открытый урок о работе со звуком в микроконтроллерах для разработчиков, инженеров, любителей электроники, радиолюбителей и
📕Открытый урок о работе со звуком в микроконтроллерах для разработчиков, инженеров, любителей электроники, радиолюбителей и инженеров-схемотехников. На открытом уроке 2 апреля в 20:00 мск мы погрузимся в работу со звуковой магией микроконтроллеров. 📗 В результате вы: - Узнаете всё об основных правилах оцифровки сигналов, ЦАП и усилителе класса D; - Поймете, как работают микроконтроллеры на примере ESP32: от интерфейса I2S до временных диаграмм и их применения; - Научитесь на практике обработке звука, цифровой фильтрации, записи AAC или MP3 из памяти микроконтроллера и созданию простого mp3-плеера из ESP32 и sd-карточки. Спикер Игорь Морозов — эксперт в сфере Embedded Development, 15+ лет в разработке и управлении IT-проектами, технический директор стартапа по созданию робототехнических устройств с элементами машинного зрения. 👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cKoeK2 📙 Все участники открытого урока получат скидку на курс "Embedded Developer" Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576