Няшная / Говнокод #19427 Ссылка на оригинал

0

  1. 1
  2. 2
UCHAR *iEarray[100];                                                
for(int i=0;i<100;iEarray[i++]=0);

memset() уже не в моде )))

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

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

    • Зато покажешь всем свой for(Node n=head; n.next!=null; n=n.next); и они как ахуеют.
      Ответить
      • > for (Node n = head; n != null; n = n.next) { ... }
        Имхо, нормальный код. Тут же ничего лишнего в шапку цикла не затащили, только то, что реально относится к итерированию.

        P.S. Твой оригинальный код словит NPE на пустом списке.
        Ответить
        • Это давно уже макрят, типа:
          #define FOR_EACH_NODE_IN_LIST(iterator, list_head) \
              for((iterator) = (list_head); (iterator) != NULL; (iterator) = (iterator)->next))
          Ответить
        • Не могу понять как тут NPE словить. не си-бог
          Node n = head;
          LABEL: if (n == null) {
              goto STOP;
          }
          { ... }
          n = n.next;

          goto LABEL;
          STOP
          Ответить
      • И как начнут бить тебя ногами по лицу...

        Не правильно ты, дядя Федор, проверку делаешь, n то нулл может быть

        А, дядя Борманд уже сказал
        Ответить
  • > memset() уже не в моде )))
    Компилятор может запросто решить что memset() там не нужен
    и дропнуть его вызов, особенно в релизе.
    А в этом массиве какой нибудь пароль....
    А потом еще орут типа: "аааа, блять , нас сломалииии..."
    Пока у вас мозги работать не начнут как ломали так и будем ломать.
    Нашли говнокод, умники бля.
    Ответить
    • Компилятор точно так же может решить что там не нужен цикл. Цикл удалить даже проще чем мемсет: доступа к исходникам мемсета у компилятора обычно нет, и нужно разработчикам компилятора явно прописывать поддержку этой оптимизации.

      Использовать чтобы ГАРАНТИРОВАНО не удалило нужно либо volatile, либо АПИ платформы.
      Ответить
      • Ну если глобальная оптимизация отключена - достаточно спрятать свой secure_memset в отдельный юнит трансляции и никуда он не денется.
        Ответить
      • можно еще пустую асмовставку вставить, которая якобы меняет память
        Ответить

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

Из-за тебя ушел bormand, guest!

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


    8