Рубрика «C»

  1. Алгоритмы псевдослучайной генерации: xorshift64, lehmer64, xoshiro256pp;

  2. Алгоритмы Фибоначчи и конвертеры из миль в километры через них;

  3. Алгоритмы быстрого обратного квадратного корня;

  4. Алгоритм бинарного возведения в степень.

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

❯ Быстрое вычисление приближенного значения степени

В прошлой статье мне предложили разобрать Читать полностью »

Всем привет, это Тимур. Сейчас в YADRO я разрабатываю сетевую операционную систему для коммутаторов KORNFELD. В ходе этого проекта летом я получил сложную задачу: реализовать установку опции PROTO_DOWN для Ethernet-интерфейсов в ядре Linux. «Из коробки» ядро поддерживает эту опцию только для vxlan и macvlan-интерфейсов, а для Ethernet поддержка определяется драйвером сетевого устройства.

Читать полностью »

Библиотеки на С слишком сложны. И в этой статье я хочу подробно описать что конкретно под этим имеется в виду и почему оно происходит

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

Библиотеки не просто сложны, они выглядят намеренно переусложнёнными, как будто разработчики намеренно делали всё, чтобы то во что они вкладывали годами свой труд невозможно было использовать.

Читать полностью »

Всем привет!

Пишу этот пост, чтобы поделиться своим опытом и получить критику или советы от людей с большим опытом.

Мне 22 года, я из Латвии. По образованию я судовой механик, но уже около 4 лет увлекаюсь программированием. Долгое время это оставалось хобби: пробовал сайты, простые игры — но они не приносили настоящего удовольствия. Я считал, что в программировании нужно было разбираться ещё со школы, и долго не верил, что могу найти себя в этой сфере.

Читать полностью »

При работе с C или C++ необходимо в какой-то степени разбираться в неопределённом поведении (UB): что это такое, каковы его эффекты, и как о него не споткнуться. Для простоты картины я буду в этой статье рассказывать только о C, но всё изложенное здесь также применимо и к C++, если явно не указано иное.

Что такое неопределённое поведение?

Общеизвестно, что на С программировать сложнее, чем на таких языках, как Python.

В определённых отношениях дело в том, что язык C низкоуровневый, близкий к ассемблеру. Он просто выдаёт вам практически то же самое, что выдаёт машина, на которой выполняется код.

Читать полностью »

Язык C — это парадокс. Созданный полвека назад, он до сих пор лежит в основе операционных систем, баз данных и любого «железа», требующего максимальной производительности. Его называют сложным, устаревшим и недружелюбным. Но почему тогда лучшие системные программисты не спешат от него отказываться? Разбираемся в философии, плюсах и минусах C вместе с Максимом Орловым, программистом Postgres Professional с 22-летним стажем.

 

Читать полностью »

GitHub: gfazzz/moonlight-course ⭐ | Версия: v0.3 | Язык: C | Статус: 42% готов | Лицензия: MIT

"В мире, где информация — это оружие, код — это ключ к истине"

TL;DR

Предлагаем вашему вниманию интерактивный курс программирования на C, где обучение происходит через захватывающий детективный сюжет. 10 сезонов, 42 эпизода, охватывающих всё: от основ до криптографии, сетей, embedded-систем и квантовых вычислений. Каждая задача — часть большого проекта по расследованию глобального заговора.

🔗 Репозиторий: Читать полностью »

Введение

Всем добра и здравия.

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

Загрузчики до этого не писал, статьи на хабре не нашел, а хотелось. Вернее нашел, но только вводный ликбез, без практики)

Поэтому было решено разбить задачу на мелкие и начать с минимального примера. Подопытным будет BluePill на stm32f103c8t6.

Читать полностью »

Я много работаю с CMake. И периодически сталкиваюсь с довольно сложными и запутанными CMake-скриптами. Долгое время я использовал логи, чтобы разобраться в их работе и выполнить отладку. Позже обнаружил, что в CMake есть встроенный отладчик и профилировщик, которые сильно упрощают процесс отладки. Кажется, не все знают об их существовании и о том, как с ними работать, поэтому я решил написать эту статью.

Читать полностью »

Всем привет!

Я бы хотел создать цикл статей, который будет посвящен созданию слоя совместимости для запуска Windows приложений на ОС семейства Linux. При этом хочу сделать акцент на реализации собственного формата исполняемого файла и использования метода дистилляции для перевода программного кода из формата в формат. Это очень обширная тема, чтобы уместить её в одну статью, а также достаточно сложная для понимания «извне», поэтому я буду стараться излагать всё на доступном языке и подходить к этой тематике, так скажем, из далека.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js