1. C++ / Говнокод #22641

    −14

    1. 1
    2. 2
    3. 3
    4. 4
    void setPixel24(int row, int col, Uint32 pixel) noexcept
            {
                *reinterpret_cast<Uint32*>(static_cast<Uint8*>(handle->pixels) + row * handle->pitch + 3 * col * sizeof(Uint8)) = pixel;
            }

    Запостил: jangolare, 20 Марта 2017

    Комментарии (22) RSS

    • если текстура лежит в виде void*, что в целом ожидаемо для, скажем, порта си+opengl кода на с++, то такое может быть и легитимно. Кроме sizeof(Uint8), ofc
      Ответить
      • Вдруг на этой платформе чар семибитный?
        Ответить
        • Тогда на ней не должен быть определен Uint8. sizeof(char) == 1, а все размеры кратны sizeof(char). Это по стандарту. Архитектур с 1/2/4-хбитным charом вроде как не существует.
          Ответить
          • И не может. В чар должны 96 символов влезать, вроде.
            Ответить
            • тоже хотел об этом написать, но не нашел описание требований
              Ответить
              • Вроде пишут, что в C99 и в C++ в char должно быть не меньше 8 бит, а в старых Plain C (до 99 года) могло быть и меньше (главное, чтобы влезло 95 символов):
                http://stackoverflow.com/questions/2215445/are-there-machines-where-sizeofchar-1-or-at-least-char-bit-8

                http://stackoverflow.com/questions/881894/is-char-guaranteed-to-be-exactly-8-bit-long
                Ответить
                • совсем не уважают старые компутеры

                  в С++17 выпилили триграфы даже
                  теперь на машинах 70-х годов на С++ не попишешь
                  Ответить
                • - Я так раньше никогда не делала. Мне понравилось. А тебее? - сказала она после того, как я влил в неё свой заряд и, уставший, уселся прямо на ковролин на полу кабинета.
                  Ответить
                • Vanished
                  Ответить
                  • - Я так раньше никогда не делала. Мне понравилось. А тебее? - сказала она после того, как я влил в неё свой заряд и, уставший, уселся прямо на ковролин на полу кабинета.
                    Ответить
              • Vanished
                Ответить
              • Vanished
                Ответить
                • – У вас у мужиков, по утрам, он безо всякого возбуждения так торчит, что любо дорого. Ну, вот я… и… – Я закрыл ей рот поцелуем, а когда оторвался, то зашептал ей в лицо
                  Ответить
              • Vanished
                Ответить
            • Vanished
              Ответить
            • Vanished
              Ответить
          • Vanished
            Ответить
          • Vanished
            Ответить

    Добавить комментарий