Публикации по теме 'c-plus-plus-language'


Как программа C/C++ работает за кулисами?
Если вы не читатель, то можете посмотреть эту же статью в виде видео👇 👇👇👇 ИЛИ нажмите здесь для просмотра Итак, давайте начнем. Эта статья применима как к C, так и к C++. Но я буду использовать пример программы на C++, чтобы показать, как программа компилируется и выполняется за кулисами. Наша цель Мы рассмотрим, как исходный код преобразуется в исполняемый код с помощью таких инструментов, как Препроцессор , Компилятор , Ассемблер , Компоновщик и Загрузчик ...

Подсчет количества полей в агрегате в C ++ 20 - часть 2
Это продолжение моей предыдущей истории , так что вы можете прочитать ее, если хотите понять этот. Здесь я обращаюсь к некоторым проблемам с предыдущим кодом обнаружения. Нажмите здесь, чтобы перейти прямо на страницу GodBolt с последними дополнениями к коду. Если вы читали мою последнюю статью на эту тему, вы могли убедиться, что она верна и может правильно обрабатывать все случаи. Однако не все так просто. Давайте немного изменим нашу структуру: struct MyStruct3 { int a;..

Обнаружение использования после перемещения в MSVC 2022
Одним из сомнительных дизайнерских решений в C++ является операция перемещения, представленная в C++11. Задуманная как более быстрая альтернатива копированию объектов, эта операция также привнесла новую ошибку, связанную с безопасностью памяти — ошибку использования после перемещения. В этой статье я хотел бы показать вам, что не так с операцией перемещения, на мой взгляд, и как смягчить проблему использования после перемещения. Прежде чем мы начнем, позвольте мне кратко объяснить, зачем..

Учебная программа низкого уровня C/C++, часть 4: больше стека
ПРИМЕЧАНИЕ. Первоначально это сообщение было опубликовано на сайте AltDevBlogADay.com прибл. 2012 Весь код был написан в Visual Studio 2010 (!!), поэтому ваша текущая версия может иметь другой пользовательский интерфейс или параметры с другими именами. Другим вариантом, помимо использования реальной IDE, может быть использование Compiler Explorer, созданного замечательным Мэттом Годболтом: https://godbolt.org/z/YEc7h6YaK (хотя сгенерированный ассемблер будет выглядеть по-другому, он..

Мои заметки о статической/динамической инициализации переменных в C++
В этой короткой статье я напишу о том, что я узнал о статической/динамической инициализации переменных в C++. Введение Привет, меня зовут Владислав, я инженер-программист из Украина . Мой наставник попросил меня подготовить статью об аде порядка статической инициализации в C++. Я начал свое исследование, и мне было трудно разобраться с этой темой. Пару дней я исследовал эту тему, и, наконец, я разобрался с этим. Эта тема не так сложна, как я думал, но информации о ней в..

Почему (0,302 == 0,302) является ложным в С++?
Вопрос для всех, чтобы объяснить проблемы со сравнением с плавающей запятой — с этим нужно быть осторожным. Вышеупомянутая проблема на 5% состоит из математики, на 5% из C++ и на 90% связана с нюансами вычислений с плавающей запятой в основных языках программирования. Прежде чем перейти к теории, давайте проверим это эмпирически. Я написал мини-программу, чтобы проверить это 10 миллионов раз (просто для уверенности). Вы можете попробовать запустить эту программу здесь ...

Как работает C ++
Базовый рабочий процесс кода C ++: исходный файл - ›компилятор -› исполняемый двоичный файл. Но как получить исполняемый двоичный файл из исходного кода? Давайте сначала посмотрим код на C ++: Что находится в исходном файле? Первое, что мы видим в приведенном выше коде: «#include ‹iostream›», это инструкция препроцессора. Все, что начинается с «#», является оператором препроцессора. Когда компилятор получает исходный файл, он предварительно обрабатывает все операторы..