C/C++ Development | YeaHub – Telegram
C/C++ Development | YeaHub
827 subscribers
228 photos
56 videos
1 file
380 links
Теория, подготовка к интервью и курсы для C/C++ разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
#новости
😬 Создатель C++ бьет тревогу из-за "серьезных атак" на язык программирования.

Бьярне Страуструп, создатель C++, обратился к сообществу с призывом защитить язык, который в последние годы подвергается критике со стороны кибербезопасности и технических экспертов из-за проблем с ручным управлением памяти. C и C++ полагаются на него, что приводит к ошибкам выхода за пределы чтения и записи, которые, в свою очередь становятся источником для уязвимостей и составляют большинство проблем в крупных проектах.

Страуструп признает, что C++ нуждается в срочных мерах для улучшения безопасности, особенно в свете рекомендаций правительственных агентств, которые рекомендуют отказаться от использования "небезопасных" языков к 2026 году. Он предлагает использовать фреймворк "Profiles", который может помочь в решении этих проблем, но скептики считают, что это решение не будет готово вовремя.
theregister.com

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🤯 Рендерер VoxelSpace на старом Atari ST с 1 МБ памяти и процессором на 8 МГц, поддерживающем всего 16 цветов достиг впечатляющих результатов по оптимизации.

Разработчики потратили много времени на оптимизацию, используя C и встроенный m68k-ассемблер.

Недавно получилось уменьшить использование CRT, благодаря чему исполняемый файл стал всего 13430 байт, освободив почти 200 КБ оперативной памяти. ☕️

Это улучшение значительно оптимизирует работу программы, позволяя использовать больше ресурсов системы для других задач.

Исходный код и двоичные файлы доступны на Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
🤔 MBASE

Это высокоуровневая неблокирующая библиотека для вывода больших языковых моделей, разработанная на основе проекта llama.cpp!

✔️ Ее цель — предоставить разработчикам инструменты и API для интеграции популярных LLM в свои приложения с минимальными потерями производительности и затратами на разработку. Библиотека поддерживает неблокирующий ввод-вывод, что позволяет эффективно обрабатывать запросы без задержек, связанных с ожиданием завершения операций. Это особенно полезно при создании приложений, требующих высокой отзывчивости и способности обрабатывать несколько запросов одновременно. MBASE предоставляет гибкие и настраиваемые интерфейсы, упрощающие процесс интеграции LLM в различные проекты, будь то чат-боты, системы рекомендаций или другие приложения, использующие возможности современных языковых моделей.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#Собес
🤔 Что такое EOF (end of file) в С?

EOF (End Of File) в С указывает на конец файла при чтении данных. При достижении конца файла стандартные функции, такие как fgetc(), fscanf() , fgets() , возвращают EOF .

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
😊 CUTLASS (CUDA Templates for Linear Algebra Subroutines)

Это коллекция C++ шаблонов, разработанная NVIDIA для реализации высокопроизводительных операций умножения матриц (GEMM) и связанных с ними вычислений на GPU с использованием CUDA!

🚩 Библиотека предоставляет модульные и повторно используемые компоненты, которые упрощают разработку пользовательских ядер и приложений, оптимизированных для современных архитектур NVIDIA, включая Volta, Turing, Ampere, Ada, Hopper и Blackwell.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Media is too big
VIEW IN TELEGRAM
#видео
👍 Токенизатор LLM на C

Избранный Богом разработчик на Си, Цодинг, создает токенизатор LLM на Си.
Источник

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 Напишите собственную оболочку

Это базовые уроки для разработки собственного интерпретатора команд в Linux, который сможет управлять процессами, обрабатывать ввод команд и выполнять программы
📱 Смотреть видео

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое файл (file) в С?

Файл в С - это область памяти на диске, используемая для хранения данных. Файлы позволяют хранить информацию между запусками программы, в отличие от переменных. Работа с файлами осуществляется через функции fopen() , fclose() , fread(), fwrite()

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 std::unordered_map::
emplace_hint()


std::unordered_map::emplace_hint() позволяет вставлять элементы в хеш-таблицу с подсказкой для оптимизации. Это особенно полезно, если известно, куда примерно должен встать новый элемент, ускоряя операцию вставки.
Документация

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#видео
😇 Продвинутый семинар по C++

Все видеоролики очень насыщенные, с очень хорошим содержанием.

Высокопроизводительные вычисления (HPC) на C++
Инфраструктура C++ и текстовые ресурсы
RAII, владение ресурсами, указатели и руководства по ним
Обобщённое программирование (Generic Programming), часть 1
Функциональные и обобщённые утилиты программирования
и тд.
Источник

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
3
#статьи
🥺 CMake: Настройка проекта, подключение библиотек и мучения с Vulkan
Ознакомиться

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#Собес
🤔 Что такое статическая переменная (static variable) в C?

Статическая переменная объявляется с ключевым словом static и сохраняет своё значение между вызовами функции. В отличие от локальных переменных, она не уничтожается после выхода из области видимости.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🥺 Хочешь передавать данные звуком без интернета и Bluetooth?

Проект ggwave позволяет кодировать и декодировать данные в звуковые волны, превращая любой динамик и микрофон в средство передачи информации!

🟠 Кодирует данные в неслышимые для человека звуковые сигналы
🟠 Декодирует их на принимающем устройстве
🟠 Работает на любых платформах
Попробуй тут

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Шпаргалка по библиотеке fmt

Небольшая, но очень полезная шпаргалка, рассказывающая о возможных способах форматирования различных типов данных с помощью стандартной библиотеки fmt.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 Лови гайд по созданию операционной системы с нуля.

Автор — Tu Dung Nguyen — решил, что копаться в чужом коде и читать тысячу страниц Таненбаума — это скучно. Гораздо круче самому написать ОС!

Ты стартуешь с простого загрузчика, переводишь процессор в защищённый режим, пишешь драйверы и постепенно собираешь свой мини-операционник на ассемблере и C.
Ознакомьтесь тут

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое компилятор (compiler) в С?

Компилятор - это программа, которая переводит исходный код на языке С в машинный код (исполняемый файл). Он выполняет лексический. синтаксический и семантический анализ, а затем оптимизирует код перед генерацией машинных инструкций.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 713. Subarray Product Less Than K

Если задан массив целых чисел nums и целое число k, верните количество смежных подмассивов, в которых произведение всех элементов в подмассиве строго меньше k.

Пример:
Input: nums = [10,5,2,6], k = 100
Output: 8


👨‍💻 Алгоритм:

1⃣Инициализируйте переменные для отслеживания текущего произведения и количества допустимых подмассивов. Используйте два указателя для границ подмассива.

2⃣Перемещайте правый указатель по массиву и умножайте текущий элемент на текущее произведение. Если произведение становится больше или равно k, перемещайте левый указатель, уменьшая произведение до тех пор, пока оно снова не станет меньше k.

3⃣Подсчитайте количество подмассивов с текущим правым указателем, добавив к общему количеству допустимых подмассивов разницу между правым и левым указателями.

😎 Решение:
int numSubarrayProductLessThanK(vector<int>& nums, int k) {
if (k <= 1) return 0;
int product = 1, count = 0, left = 0;
for (int right = 0; right < nums.size(); right++) {
product *= nums[right];
while (product >= k) {
product /= nums[left];
left++;
}
count += right - left + 1;
}
return count;
}


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#полезное
👍 Указатели важны, потому что всё — это адрес!!!

Одна из самых фундаментальных идей/абстракций во всех компьютерных системах — это идея "памяти с отображением на устройства ввода-вывода" (Memory-mapped I/O)!

Memory-mapped I/O используется для того, чтобы процессор мог взаимодействовать с периферийными устройствами (такими как USB, SPI, таймеры и UART), а также с памятью, используя команды доступа к памяти (загрузка и сохранение данных).

В этом подходе аппаратным компонентам выделяются определённые области в адресном пространстве, и манипуляции с этими адресами позволяют выполнять различные операции или получать доступ к конкретным устройствам.

Например, если мы хотим отправить символ через оборудование UART, нам нужно просто записать этот символ в определённый адрес (на рисунке это адрес в диапазоне 0xA00–0xC1F), который соответствует UART...

Такие операции чтения и записи в память выполняются драйверами устройств.

P.S: Манипуляция на основе адресов — именно поэтому язык C идеально подходит для написания драйверов и низкоуровневого программного обеспечения.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🥺 std::source_location
::current()


std::source_location::current() (C++20) позволяет получить информацию о месте вызова функции, включая имя файла, номер строки и название функции. Это удобно для логирования, отладки и трассировки кода.
Документация

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое пространство имён (namespace) в С++?

Пространство имён в С++ — это способ группировки связанных элементов кода под одним именем. Оно помогает избежать конфликтов имён функций или переменных, используемых в разных частях программы или внешних библиотеках.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
😊 level-ip

Это минималистичный стек IPv4/TCP/UDP, написанный на C, который можно разобрать по винтикам и понять, как устроены сети на низком уровне

Раньше, для этого приходилось либо читать гигабайты исходников Linux, либо писать всё с нуля.

Теперь просто берёшь level-ip, и у тебя в руках чистый, компактный стек, который легко модифицировать, изучать и даже встраивать в свои проекты.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM