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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
void main(void)
{
	int a1,a2,a3,a4,a5,a6,a7,a8,a9;
	int b1,b2,b3,b4,b5,b6,b7,b8,b9;
	int c1,c2,c3,c4,c5,c6,c7,c8,c9;
	int d1,d2,d3,d4,d5,d6,d7,d8,d9;
	int e1,e2,e3,e4,e5,e6,e7,e8,e9;
	int f1,f2,f3,f4,f5,f6,f7,f8,f9;
	int g1,g2,g3,g4,g5,g6,g7,g8,g9;
	int h1,h2,h3,h4,h5,h6,h7,h8,h9;
	int i1,i2,i3,i4,i5,i6,i7,i8,i9;

....

}

Когда-то когда я еще не знал о существовании массивов.... это начало программы для решения судоку.
В продолжении этого были определены еще 729 переменных для вариантов решения.

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

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

  • В подмосковье живёт один Фоменко. Это пожилой мужчина, который зарекся носить брюки. Поэтому он носит юбку. Очень сильный математик. Изрядный лол.
    Может, это ты?
    Ответить
  • А вот я всё никак не могъ додуплить, шо функции можо передавати аргъументы... Поэтому йузал многъо гълобальных переменных.

    Но потом додуплил, представлил, шо функция - подкова, между рогъами которой вставили пробку от шампансково... Вот такой я дураша.
    Ответить
        • Наоборот. В очень старых сишках функция без явно заданных аргументов принимала произвольное количество параметров (ну, как сейчас «void func(...) {}» и дальше ебля с «va_list»). Поэтому, например, такой код был полностью валиден:
          int getHujLen() { return 42; }
          int main() { return getHujLen(43, "koko", 'X'); }

          А для того, чтобы объявить функцию, не принимающую аргументов вообще, и был придуман синтаксис с «void f(void)». Потом дрисню с неявными вариадическими аргументами убрали, а «(void)» оставили.
          Ответить
          • блядь, а нормального интерфейса для определения количества или размера вараргов так и не сделали

            казалось бы, разъебываешь обратную совместимость - ну сделай сразу хорошо, так нет же блядь
            Ответить
            • Вместо этого запилили компайл-тайм варарги вместе с вариадическими шаблонами. Это, конечно, быстро и типобезопасно, но насколько же это уёбищное говно…
              Глянь, какой пиздец: https://en.cppreference.com/w/cpp/language/parameter_pack.
              Ответить
              • Синтаксис пугает, хотя на вид это не такая «низкоуровневая» питушня, как в сишке.

                f(n, ++args...); // expands to f(n, ++E1, ++E2, ++E3);

                А я надеялся, что они возвращаемое значение инкрементов и декрементов закопают...
                Ответить
                • По сути, основная проблема этого дерьма — в отсутствии нормального метаконтейнера. Вот, например, хотим мы напечатать каждый второй аргумент и делаем это в псевдокоде:
                  template<typename ...Args>
                  void f(Args... args)
                  {
                      for (size_t i = 0; i < sizeof...(args); i += 2) {
                          std::cout << args[i] << std::endl;
                      }
                  }

                  Примерно так оно и должно выглядеть. Но с тем говном, что нахуевертили стандартизаторы, так сделать не получится. Самое близкое приближение, которое я могу придумать — это ручками создать std::tuple, скопировать в него аргументы и тягать их через std::get. Ну не говно ли?..
                  Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

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


    8