📑 Связные списки, трюки с указателями и хороший вкус
В интервью на TED Линус Торвальдс рассказывает о хорошем стиле программирования. В качестве примера приводит два варианта удаления элементов из односвязных списков. В первом варианте есть специальный случай, а в другом — нет. Линус предпочитает второй.
В качестве примера Линус показывает достаточно простой псевдокод в стиле Си. Но не даёт концептуального объяснения. Поэтому не сразу понятно, как работает косвенный указатель.
Подробно разберём это решение и его преимущества. В качестве бонуса показано не только удаление, но и вставка элемента через косвенную адресацию.
#статьи #C #Си
В интервью на TED Линус Торвальдс рассказывает о хорошем стиле программирования. В качестве примера приводит два варианта удаления элементов из односвязных списков. В первом варианте есть специальный случай, а в другом — нет. Линус предпочитает второй.
В качестве примера Линус показывает достаточно простой псевдокод в стиле Си. Но не даёт концептуального объяснения. Поэтому не сразу понятно, как работает косвенный указатель.
Подробно разберём это решение и его преимущества. В качестве бонуса показано не только удаление, но и вставка элемента через косвенную адресацию.
#статьи #C #Си
💡 Модификаторы в С++
В комментариях к последнему тесту по C++ возникли вопросы, что это за модификаторы. Поэтому сегодня разберём модификаторы знаковости и размера в С++.
▍Знаковые модификаторы
▍Модификаторы размера
Модификатор
В комментариях к последнему тесту по C++ возникли вопросы, что это за модификаторы. Поэтому сегодня разберём модификаторы знаковости и размера в С++.
▍Знаковые модификаторы
signed
- представление знакового типа данных (если опущено, то подразумевается по умолчанию).unsigned
- представление беззнакового типа данных.▍Модификаторы размера
short
- целевой тип оптимизируется, чтобы размер был не менее 16 бит.long
- целевой тип оптимизируется, чтобы размер был не менее 32 бит.Модификатор
long
можно применять к типу данных дважды, что даёт оптимизацию занимаемого переменной пространства не менее 64 бит. Данная оптимизация введена в стандарте C++11.long long intМодификаторы размера и знаковости можно также комбинировать.
signed long long int#советы #coding #C #Си #C_plus_plus
👍1
📑 «Чертовски глупое решение»: история появления языка C
В том или ином виде, язык C повлиял на формирование практически каждого языка программирования, разработанного с 1980-х. Некоторые языки наподобие C++, C# и Objective C должны были стать прямыми наследниками C, а другие просто переняли и адаптировали его синтаксис. Программист, перешедший с Java, PHP, Ruby, Python или Perl, почти не испытает сложностей с пониманием простых программ на C, и в этом смысле C можно воспринимать как lingua franca программистов.
Однако C не возник из ниоткуда как единый монолит программирования. История C начинается в Англии, с коллеги Алана Тьюринга и программы, игравшей в шашки.
#статьи #C #Си
В том или ином виде, язык C повлиял на формирование практически каждого языка программирования, разработанного с 1980-х. Некоторые языки наподобие C++, C# и Objective C должны были стать прямыми наследниками C, а другие просто переняли и адаптировали его синтаксис. Программист, перешедший с Java, PHP, Ruby, Python или Perl, почти не испытает сложностей с пониманием простых программ на C, и в этом смысле C можно воспринимать как lingua franca программистов.
Однако C не возник из ниоткуда как единый монолит программирования. История C начинается в Англии, с коллеги Алана Тьюринга и программы, игравшей в шашки.
#статьи #C #Си
🔥 Лучшее на канале за неделю
1. Нужна ли нам замена языка C?
2. Maven — один из трёх самых популярных инструментов для сборки проектов на Java.
3. Модификаторы в С++.
1. Нужна ли нам замена языка C?
2. Maven — один из трёх самых популярных инструментов для сборки проектов на Java.
3. Модификаторы в С++.
📑 Пишем простой Path Tracer на старом добром GLSL
В статье показывается пример реализации простого Path Tracer на GLSL.
#статьи #C #Си #C_plus_plus
В статье показывается пример реализации простого Path Tracer на GLSL.
#статьи #C #Си #C_plus_plus
📑 Эмуляция компьютера: интерпретатор CHIP-8
В данной статье поговорим о разработке эмулятора и обсудим простой, но полноценный пример эмуляции CHIP-8.
#статьи #C #Си #C_plus_plus
В данной статье поговорим о разработке эмулятора и обсудим простой, но полноценный пример эмуляции CHIP-8.
#статьи #C #Си #C_plus_plus
🔥 Лучшее на канале за неделю
1. Эмуляция компьютера: интерпретатор CHIP-8.
2. Guava — набор основных библиотек Google для Java.
3. Проверяйте код с использованием линтера.
1. Эмуляция компьютера: интерпретатор CHIP-8.
2. Guava — набор основных библиотек Google для Java.
3. Проверяйте код с использованием линтера.
📑 Эмуляция компьютера: интерпретатор CHIP-8, таймеры и обработка ввода
В прошлой части мы уже создали вполне рабочий эмулятор CHIP-8, но он, к сожалению, получился очень медленным. Почему? Читайте в данной статье.
#статьи #C #Си #C_plus_plus
В прошлой части мы уже создали вполне рабочий эмулятор CHIP-8, но он, к сожалению, получился очень медленным. Почему? Читайте в данной статье.
#статьи #C #Си #C_plus_plus
🔥 Лучшее на канале за неделю
1. Эмуляция компьютера: интерпретатор CHIP-8, таймеры и обработка ввода.
2. Mockito — библиотека для mock-объектов..
3. Не держите в репозитории закомментированный код.
1. Эмуляция компьютера: интерпретатор CHIP-8, таймеры и обработка ввода.
2. Mockito — библиотека для mock-объектов..
3. Не держите в репозитории закомментированный код.
📑 ARM и программирование без блокировок
Эта статья является вводной статьёй про опасности программирования без блокировок, а также объяснением, почему слабая модель памяти ARM ломает некоторый код, и почему этот код, вероятно, не работал изначально. Также в ней объясняется, почему стандарт C++11 значительно улучшил ситуацию в программировании без блокировок (несмотря на возражения против противоположной точки зрения).
#статьи #C #Си #C_plus_plus
Эта статья является вводной статьёй про опасности программирования без блокировок, а также объяснением, почему слабая модель памяти ARM ломает некоторый код, и почему этот код, вероятно, не работал изначально. Также в ней объясняется, почему стандарт C++11 значительно улучшил ситуацию в программировании без блокировок (несмотря на возражения против противоположной точки зрения).
#статьи #C #Си #C_plus_plus
🔥 Лучшее на канале за неделю
1. ARM и программирование без блокировок.
2. CodeTrack — это бесплатный профилировщик производительности и анализатор выполнения .NET.
3. Не пишите сложные многоуровневые запросы.
1. ARM и программирование без блокировок.
2. CodeTrack — это бесплатный профилировщик производительности и анализатор выполнения .NET.
3. Не пишите сложные многоуровневые запросы.
🛠 WireShark — это передовой и широко используемый анализатор сетевых протоколов. Он позволяет вам посмотреть, что происходит в вашей сети на микроскопическом уровне и является стандартом де-факто (а часто и де-юре) для многих коммерческих и некоммерческих предприятий, государственных учреждений и учебных заведений. Разработка Wireshark процветает благодаря добровольному вкладу сетевых экспертов со всего мира и является продолжением проекта, начатого Джеральдом Комбсом в 1998 году.
#инструменты #C #Си
#инструменты #C #Си
🛠 TDengine — высокопроизводительная облачная база данных временных рядов с открытым исходным кодом, оптимизированная для IoT и DevOps.
Daily Coding #инструменты #java #Си
Daily Coding #инструменты #java #Си
🛠 Ventoy — это инструмент с открытым исходным кодом для создания загрузочного USB-накопителя для файлов ISO/WIM/IMG/VHD(x)/EFI. С ventoy вам не нужно снова и снова форматировать диск, вам просто нужно скопировать файлы образа на USB-накопитель и загрузить его. Вы можете копировать множество файлов одновременно и ventoy предоставит вам загрузочное меню для их выбора.
Daily Coding #инструменты #Си
Daily Coding #инструменты #Си