TGViewer
Channel Public Channel
C/C++ Development | YeaHub

C/C++ Development | YeaHub

@yeahub_c_development

Теория, подготовка к интервью и курсы для C/C++ разработчиков

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

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

Для связи: @ruslan_kuyanets
Subscribers
741
Photos
281
Videos
56
Links
550

Showing posts older than #203 · Back to latest

Older Posts 13 shown
Post #202 233
#видео
😐 Изучение ядра Linux с использованием трассировки

Отличное видео о трассировке системных вызовов и о том, как это работает под капотом
Источник

👉Новости 👉База вопросов
Post #196 432
#полезное
🥺 Сегодня получил интересный вопрос: что быстрее —
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++ более быстрым вариантом.

👉Новости 👉База вопросов
  • 👍 1
Post #195 233
#полезное
😎 Представьте себе написание сложной разветвлённой логики без единого оператора if. Я уже некоторое время работаю с сопоставлением с образцом, но с новым языком, не C/C++

Можешь ознакомиться с этим гайдом о сопоставлении с образцом

👉Новости 👉База вопросов
  • 👍 1
Post #193 308
#полезное
🥄 Напоминание: лучший способ чему-либо научиться — делать собственные проекты.

Этот репозиторий содержит большинство проектов, какие только можно представить, и множество языков для их реализации.

Многие из них — на C, другие — на Assembly, и каждый из них даст вам мощную прокачку.

👉Новости 👉База вопросов
  • 👍 1
Post #192 245
#полезное
🛞 Создание простого клиент-серверного приложения на UDP в C

Здесь мы рассмотрим, как настроить базовый UDP-сервер и клиент на языке C, сосредоточив внимание на механике работы за кулисами - гайд

👉Новости 👉База вопросов
  • ⚡ 1
  • ❤ 1
Post #191 284
#полезное
🤯 std::indirectly_
readable_traits


std::indirectly_readable_traits (C++20) используется внутри концептов и обобщённых алгоритмов для извлечения типа значения, на который "указывает" итератор или указатель. Это полезно при написании обобщённых (generic) алгоритмов и своих концептов.

👉Новости 👉База вопросов
  • ❤ 3
Post #190 277
#Собес #Cplus
🤔 Что такое прототип функции в С++?

Прототип функции в С++ — это декларация функции, которая указывает ее имя, тип возвращаемого значения и типы параметров. Это позволяет компилятору проверять правильность вызова функции до ее определения.

👉Новости 👉База вопросов
  • 👍 4
Post #187 295
#полезное
😇 Я недавно нашёл классный способ поддерживать "лямбды" в C

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

На втором фото несколько примеров с однострочными, многострочными и с "захваченными" переменными

На 3 фото пример использован в реальном коде (адаптирован под кастомный тип массива, который просто ptr + len)

👉Новости 👉База вопросов
  • ❤ 1
Post #186 260
#полезное
😊 Наглядное видео о том, как исходный код компилируется в исполняемый файл

Не знать, как компилируется твой код — всё равно что ехать на машине с завязанными глазами

👉Новости 👉База вопросов
  • ❤ 1
  • 🥰 1
Post #185 290
#полезное
🏠 std::valarray

std::valarray оптимизирован для работы с массивами чисел и поддерживает эффективные векторные операции, что делает его полезным для научных вычислений и обработки данных.

👉Новости 👉База вопросов
  • ❤ 4
Post #184 351
#полезное
🫡 Stack vs Heap в C (кратко):

Stack:

Используется для автоматической памяти — локальных переменных, параметров функций, адресов возврата.
Быстрый, ограничен по размеру, управляется автоматически (LIFO).

Heap:

Используется для динамического распределения памяти с помощью malloc/free. Медленнее, больше по объёму, управление вручную. Возможны утечки памяти и фрагментация

👉Новости 👉База вопросов
  • ⚡ 2
  • ❤ 1
Post #183 348
#полезное
👋 Вот «Ray Tracing за один уикенд». Прекрасный небольшой ресурс, чтобы за один уикенд узнать многое о графических вычислениях. Если на выходных нечем заняться — теперь есть.
Источник

👉Новости 👉База вопросов
  • ❤ 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →