c/c++

  • ХабрахабрPhoto of [Из песочницы] Играем музыку из Mario на системном динамике

    [Из песочницы] Играем музыку из Mario на системном динамике

    Предисловие Привет, Мир! Уже года 3 хочу написать что-нибудь на Хабр, но никак не находилось темы, на которую можно было бы накатать пост. Так было до тех пор пока мне не понадобилось узнать немного про работу системного таймера и системного динамика для лабораторной работы. Порыскав немного в интернете, я не нашел ничего дельного: что-то было написано слишком сложным языком, что-то…

    Подробнее »
  • ХабрахабрPhoto of [Из песочницы] Топ-10 докладов конференции C++ CoreHard Autumn 2019

    [Из песочницы] Топ-10 докладов конференции C++ CoreHard Autumn 2019

    С 2015 года мы выросли из небольшого сообщества энтузиастов в крупную региональную конференцию. CoreHard – C++ конференция, проходящая в Минске дважды в год, весной и осенью. Мы стараемся совмещать знания признанных мастеров мира С++ с развитием локального С++ движения, активно привлекая докладчиков из местных белорусских, российских и украинских компаний. Спешим поделиться с хабровчанами топ-10 свежеиспеченных видео с нашей недавно отшумевшей…

    Подробнее »
  • ХабрахабрPhoto of Двигаемые мышкой виджеты. Drag and drop в пределах окна

    Двигаемые мышкой виджеты. Drag and drop в пределах окна

    Далее пойдёт речь не о библиотечных функциях D&D, а о собственной реализации перемещения виджета в пределах окна и сопутствующего функционала. Обычное понимание Drag and Drop(D&D) предполагает, что берётся, например, ссылка на файл из одного виджета и перемещается мышкой в другое окно или виджет. Редактор — CodeBlocks 17. Код больше для примера, чем конкретного практического применения, написан в стиле Си с…

    Подробнее »
  • ХабрахабрPhoto of Опровергаем четыре стереотипа о языке программирования Rust

    Опровергаем четыре стереотипа о языке программирования Rust

    Язык программирования Rust, созданный и поддерживаемый корпорацией Mozilla, позволяет обычным программистам писать одновременно и безопасные и быстрые системы: от калькуляторов до высоконагруженных серверов. Я могу пропустить некоторые моменты, дискуссии в комментариях приветствуются. За своё относительно короткое время существования данный язык уже успел обрасти стереотипами, четыре из которых я попытаюсь опровергнуть ниже. Rust — сложный язык программирования Rust — ещё один…

    Подробнее »
  • ХабрахабрPhoto of [Из песочницы] Как не сделать самый быстрый strlen и найти недоработку в Visual Studio 2019 Community

    [Из песочницы] Как не сделать самый быстрый strlen и найти недоработку в Visual Studio 2019 Community

    #include <iostream> #include <string> #include <vector> #include <chrono> #include <nmmintrin.h> inline size_t strlen_algo(const char* str) { size_t length = 0; while (*str++) length++; return length; } inline size_t strlen_sse4(const char* str) __m128i z128 = _mm_setzero_si128(); for(; ; length += 16) { __m128i data = _mm_load_si128((__m128i*)(str + length)); if ((res = _mm_cmpistri(z128, data, _SIDD_CMP_EQUAL_EACH)) != 16) break; } while (str[length]) length++;…

    Подробнее »
  • ХабрахабрPhoto of Неопределённое поведение с устаревшими объявлениями функций в ANSI C

    Неопределённое поведение с устаревшими объявлениями функций в ANSI C

    Прототипы были введены с целью устранить недостатки, которыми обладают обычные объявления функций. Стандарт ANSI C определяет понятие прототипа функции, представляющее собой подмножество объявления функции, которое указывает типы входных параметров. Таким образом, указание списка типов параметров в круглых скобках прототипа функции обязательно, иначе такое выражение будет признаваться компилятором как устаревшее объявление функции, что может привести к неоднозначным ситуациям, описанным в данной…

    Подробнее »
  • ХабрахабрPhoto of Пишем на Rust + CUDA C

    Пишем на Rust + CUDA C

    Всем привет! И в качестве примера напишем небольшую программу на Rust для вычисления скалярного произведения векторов, вычисление скалярного произведения будет производиться на GPU с использованием CUDA C. В данном руководстве хочу рассказать как подружить CUDA C/С++ и Rust. Кому интересно под кат! CUDA C Первым делом необходимо поставить компилятор CUDA — nvcc. Что такое CUDA и для чего это нужно…

    Подробнее »
  • ХабрахабрPhoto of [Перевод] C# является языком низкого уровня?

    [Перевод] C# является языком низкого уровня?

    Я большой поклонник всего, что делает Фабьен Санглард, мне нравится его блог, и я прочитал обе его книги от корки до корки (о них рассказывали в недавнем подкасте Hansleminutes). Я действительно рекомендую найти время, чтобы прочитать это! Недавно Фабьен написал отличный пост, где расшифровал крошечный рейтрейсер, деобфусцировав код и фантастически красиво объяснив математику. Поскольку на основной работе мне в последнее…

    Подробнее »
  • ХабрахабрPhoto of Шестая проверка Chromium, послесловие

    Шестая проверка Chromium, послесловие

    В начале 2018 года в нашем блоге появился цикл статей, посвящённый шестой проверке исходного кода проекта Chromium. Цикл включает в себя 8 статей, посвященных ошибкам и рекомендациям по их предотвращению. Две статьи вызвали бурное обсуждение, и до сих пор на почту мне изредка приходят комментарии касательно тем, затронутых в них. Пожалуй, следует дать некоторые дополнительные пояснения и, как говорится, расставить…

    Подробнее »
  • ХабрахабрPhoto of Бесплатный PVS-Studio для тех, кто развивает открытые проекты

    Бесплатный PVS-Studio для тех, кто развивает открытые проекты

    В канун празднования нового 2019 года команда PVS-Studio решила сделать приятный подарок всем контрибьюторам open-source проектов, хостящихся на GitHub или Bitbucket. Им предоставляется возможность бесплатного использования статического анализатора PVS-Studio для развития открытых проектов.Мы помогаем делать код открытого программного обеспечения более качественным и надёжным. Хотя, благодаря нашим публикациям, в открытых проектах было исправлено более 10000 ошибок, этого явно недостаточно. Наша команда…

    Подробнее »


Кнопка «Наверх»