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

    +139

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    #include <stdio.h>
    #include <stdlib.h>
    #define value_i int
    #define gen_program main()
    #define begin {
    #define end }
    #define sep ;
    #define back_val return
    #define vis(a) printf ("%d", a)
    #define ln printf ("\n")
    #define ln3 printf ("\n\n\n")
    #define cycle_count for
    #define rand rand()
    #define gen_rand srand((unsigned)time(NULL))
    #define value_c char
    #define vis_c(a) printf("%c", a)
    #define eq =
    #define uneq !=
    #define check ==
    #define inc(a) a++
    #define res %
    #define add +
    #define sub -
    #define blank void
    #define small <
    #define big >
    
    blank line(blank) sep
    
    value_i gen_program
    begin
        value_i x, i                                sep
        gen_rand                                    sep
        value_c c eq ' '                            sep
        cycle_count(i eq 1 sep i small 10 sep inc(i))
        begin
            x eq rand res 10 add 1                  sep
            if (x uneq 10)
            begin
                vis(x)                              sep
                vis_c(c)                            sep
            end
        end
        ln3                                         sep
        line()                                      sep
        ln                                          sep
        back_val 0                                  sep
    
    end
    
    blank line(blank)
    begin
        value_i i sep
        cycle_count (i eq 0 sep i small 10 sep inc(i) )
        begin
        printf("-/*\\")                                sep
        end
        printf("-")                                    sep
    end

    Можно рефакторить.

    Запостил: Hammer, 01 Марта 2014

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

    • показать все, что скрытоси = гавно
      Ответить
    • > Можно рефакторить.
      gcc -E, и можно рефакторить :)
      Ответить
    • > i small 10
      Ну less же...
      Ответить
      • А мне sep бросился в глаза. Хотя, сейчас я уже осознал, что это не паскалемышление, а что-то серьёзное.
        Ответить
        • sep от слова separator (разделитель).
          Ответить
          • Нет, мне не из-за несоответствия с английским.
            begin/end вместо скобок можно принять, чтобы не разгневать паскалеверующих, да и смирился я с ними, а вот sep вместо точки с запятой - очень странное решение.
            Только потом я увидел, что тут весь код такой.
            Ответить
            • В языке Occam (не путать с OCaml) вообще нет точки с запятой в привычном понимании. Там есть SEQ — выполнить последовательно — и PAR — выполнить параллельно.
              Ответить
      • small просто для наглядности.
        Ответить
      • small для наглядности.
        Ответить
    • лучше бы сделали
      #define IF if (
      #define THEN ) {
      #define ELSE } else {
      #define ELSIF } else if (
      #define END }
      Ответить
    • Бедный Деннис Ритчи...
      Ответить
      • показать все, что скрытопомер от хуйца в глоткэ
        Ответить
        • показать все, что скрытода да, нехуй минусовать, Деннис Ритчи знатный хуесос, они с Кеном Томпсоном адово пидорились
          Ответить
          • показать все, что скрытоБред сивой кобылы.
            Ответить
          • показать все, что скрытосогласен
            два долбоёба, загнавших CS в глубокую задницу
            Ответить
            • они ж неуиноваты что их творение оказалось столь живучим.
              Ответить
              • как говорится, за нечаянно бьют отчаянно
                Ответить
                • Пацаны сделали язык под pdp-7 чтобы удобно в лаборатории пилить себе юникс, а не чтобы насолить тебе, Тарас.
                  Делали на основе BPCL и PL/1. В сравнении с PL/1 язык получился весьма простым и годным.
                  И в 60-х, 70-х ничего другого и не требовалось.
                  Ответить
                  • понимаешь, Н2 тоже не специально довёл страну до революции, но это не отменяет того, что вина на нём
                    Ответить
            • Чтобы свысока обвинять кого-то в чем то, нужно сначала самому дойти до их уровня. [b]А чего достиг ты?[b]
              Ответить
              • Да. Если Тарас разработает и широко внедрит современный низкоуровневый язык на замену сишке (без gc ессно), то я первым скинусь ему на памятник.
                Ответить
                • На комп новый ему скинься. Небось, дажи гей-порно в консолечке смотрит.
                  Ответить
                  • Ему консолечка гей порно заменяет.
                    Ответить
                    • Консолечка, блять, ТЕБЕ гей порно заменяет, ты ебешь себя ей в анус!
                      Ответить
                • llvm
                  только надо понимать что нехуй пейсать на нём руками
                  Ответить
                  • Я подозревал, что кто-то упомянёт сиё.
                    >> нехуй пейсать на нём руками
                    И что шланг:? Так, Тарас, шланг с виндой не очень дружит, бгг.

                    Задача кстати упрощается: запилить новый низкоуровневый язык на основе llvm, в котором не будет противоречивых фич и всё с радостью начнут портировать/писать код под него.
                    Мне llvm тоже нравится. Может найдется группа энтузиастов, которые с его помощью сломят крестобляству хребет.
                    Ответить
                    • > Так, Тарас, шланг с виндой не очень дружит, бгг.

                      а чё, функции "подключить функцию с таким-то именем и такой-то сигнатурой из такой-т библиотеки" в нём нету?
                      Ответить

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