1. Си / Говнокод #23706

    0

    1. 1
    2. 2
    3. 3
    4. 4
    char bytes[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    function1(bytes);
    (void)(bytes[0] = 10), (void)(bytes[1] = 11), (void)(bytes[2] = 12); //WTF?
    function2(bytes);

    Вот такую байду требует написать XCode при присвоении элементов массива через запятую, иначе warning.
    Гейкорп и их главпидор Кук совсем охренели, мало того что последие хуйкоды крашатся и виснут по фазам луны, мало того что встроенный гуй систем контроля версий работает как говно, так оно еще и ворининги выдает на ровном месте - качество apple - blyad.

    Запостил: Psionic, 05 Февраля 2018

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

    • А зачем присваивание через запятую?
      Какой-то стандарт оформления? Для унификации с множественным объявлением-определением? Точка с запятой ассоциируется с новой строкой, а запятая - нет?
      Или эта питушня срабатывает даже из-за запятой внутри for?
      Ответить
      • Я уже подобное встречал. Суть: некоторые гайдлайны позволяют писать if/for/while без скобок только если операнд помещается в одну строку. Таким образом, если писать присваивания через запятую, можно экономить целую скобку!
        if (someCondition)
          a[i] = p, b[j] = vd = c[k] = q;

        читаешь такой код и скупая мужская кровавая слеза течет по скуле
        Ответить
        • А я люблю так писать типа
          if (someOne)
               SomeFunction(); //Очень компактно выходит
          Ответить
          • да я и сам так пишу. Просто по факту две операции через запятую - это МАТЬЕГО ДВЕ операции. По факту, оператору запятой всего два назначения:
            1. for с двумя индексами: for (auto i = 0, j = n; i < m; i = j, j += n)
            2. шаблоны на variadic template'ах
            Всё остальное - методы обфускации
            Ответить
        • Для набивания на перфокартах актуально, наверное.
          Ответить
        • Ну а какая-нибуть такая хуйня?
          if (someCondition1)
            a[i] = p;
          else if (someCondition2)
            b[j] = q;
          else if (someCondition3)
            a[j] = q;
          else if (someCondition4)
            b[j] = p;
          else if (someCondition5)
            a[i] = vd;
          else if (someCondition6) {
            a[i] = p;
            b[j] = vd = c[k] = q;
          } else if (someCondition7)
            a[i] = bq;
          else if (someCondition8)
            b[j] = pp;

          - ад перфекциониста
          Ответить
          • Это еще нормально.

            Понадобилось быстро вставить дополнительную логику в одну из веток: добавили туда скобки. Типично для всякого легаси, покрытого заплатками.

            >ад перфекциониста
            Хуже когда коду лет дждесять, и за это время в нём высралась куча людей с различными кодстайлами, разной культорой кодинга, разными привычками и взглядами на жизнь.
            Ответить
            • Не ссы, лягуха, болото будет нашим.
              Ответить
            • Ну что за люди, так и хочется порой сказать - ты что барон или граф, чтоб в говно не чистить?
              Один я, что-ли, такие вещи воспринимаю как одну из сторон своих рабочих обязанностей?
              Ответить
      • А чтоб строки не плодить однотипные и дурацкие. Ненавижу "жидкий" однотипный код.
        Ответить
        • когда "однотипные и дурацкие" строки в столбик, хотя бы сразу визуально видно, что они однотипные и дурацкие
          Ответить
    • Можно подумать, что 7 лет назад XCode не крашился, а его встроенный vcs-клиент не был говном.
      А warning должен выдавать clang, к нему все претензии.
      Ответить
    • да-да, это шланг плохой, это не ты пишешь говно
      Ответить
      • Ну это спорный вопрос - взять хотя-бы оппозитный двигатель некоторых корейских легковушек, инженеры были придурки когда для замены свечей двигатель нужно вынуть, или в автосервисах сплошь жадные и ленивые жопы не желающие работать и доящие клиентов? Аналогично - чья лажа моя или анализатора кода?
        Ответить

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