Кресты / Говнокод #18338 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
// Отправная точка новых изысканий
uint16_t Mask = 0x0000;
uint8_t i = 0;
for(i=0; i<255; i++)
	Mask |= (1 << i);

ResponseBuf = (VirtualMemory & (Mask << RequestedAddr)) >> RequestedAddr;

Из кода firmware одного девайса.

Запостил: Sushev Sushev, (Updated )

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

        • А цикл-то на самом деле нетривиальный. Гэцэцэ отказывается его оптимизировать даже с параметром -O3. Шланг пытается использовать SSE, но генерирует всё тот же цикл.
          Ответить
          • Интересное наблюдение, сейчас проверил. Кстати, так и не понял до сих пор, для чего автор этот код породил.
            Ответить
      • Давно хочу такой цикл чтобы было можно корованы
        Ответить
    • Нельзя. Тогда цикл старший бит не заполнит (потому что там знак меньше вместо меньше или равно). Так что только до 255 бит.
      Ответить
  • А комментарий в начале кода, по видимому, является троллингом (
    Ответить
  • Оптимизация:
    uint16_t Mask = 0x0001; // инициализируем единичкой
    uint16_t i = 0;
    for(i=0; i<=65535; i++) {
    	Mask |= ((1<<(1<<i))-1)<<(1<<i);
    	if (!~Mask) break;
    }
    Ответить

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

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8