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

    +3

    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
    // https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <stdbool.h>
    
    
    
    int main(void)
    {
      char *a = "petuh";
      if(({bool ret = 0;if(a[0]=='p')if(a[1]=='e')if(a[2]=='t')if(a[3]=='u')if(a[4]=='h')ret=1;ret;}))
      {
        puts(a);
      }
      return EXIT_SUCCESS;
    }

    Интересное расширение.

    Запостил: j123123, 09 Апреля 2021

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

    • Или даже так:
      if(({bool ret=0;if(a[0]=='p')ret=({bool ret=0;if(a[1]=='e')ret=({bool ret=0;if(a[2]=='t')ret=({bool ret=0;if(a[3]=='u')ret=({bool ret=0;if(a[4]=='h')ret=1;ret;});ret;});ret;});ret;});ret;}))
      {
        puts(a);
      }
      Ответить
      • if(({bool ret=1;for(size_t i=0; i < sizeof("petuh")-1; i++){if("petuh"[i]!=a[i]){ret=0;break;}}ret;}))
        {
          puts(a);
        }
        Ответить
    • Теперь всегда так буду писать. Выглядит классно!
      Ответить
      • Выглядит как говно.
        Ответить
        • Нет. Выглядит классно.
          Ответить
        • Ну это для макросни. Когда нужно какую-то временную переменную пильнуть в expression-like макросе.
          Ответить
          • До чего только сишники не доходят, лишь бы функцию не делать.
            Ответить
    • какой симпатичный, приятный код получается
      #define maxint(a,b) \
        ({int _a = (a), _b = (b); _a > _b ? _a : _b; })
      Ответить
      • Там можно даже не int, а что-то в дуже decltype(a). Забыл как в няшной это назвали.
        Ответить
        • а как в няшной decltype?
          я в какой-то момент его там не нашел, и руками коапировал сигнатурту
          Ответить
          • Да не помню я...

            З.Ы. Нагуглила, typeof оно называется. И это gcc'изм.
            Ответить
            • >гццизм
              Тогда понятно, почему я про это не знал

              Скользская это дорожка. Я за кодогенерацию
              Ответить
            • > Забыл
              > Нагуглила

              Да какое же оно, число Рейнольдса твоей gender fluid?
              Ответить
              • Зависит от того, какая из субличностей пишет.
                Ответить
                • Удобно вам там.
                  Эх, надо было не Снаутом, а Ийоном Тихим назваться, и объяснять, что все глупости от моего имени пишет правая половина.
                  Ответить
                  • Если ты сделаешь так постфактум, мы будем считать что так и было.
                    Ответить
                • А у них знания компутер science одинаковые?
                  Ответить
                  • Неа. Она "PHP" не знает, к примеру. Приходится переводить.
                    Ответить
                    • Он тебя про computer science спросил, причем тут пхп?
                      Ответить
                      • Лол
                        Ответить
                      • PhD in Applied PHP
                        Ответить
                        • PhPD
                          Ответить
                          • Поттеринг, ты опять за своё?
                            Ответить
                            • Я тебе уже жаловался, что этот пидор пролез в настройки сетевых уже?

                              Скоро ты будешь в systemd юните писать

                              Advertise=10000baset-full
                              Ответить
                              • Ничего не понял.
                                Ответить
                                • https://www.freedesktop.org/software/systemd/man/systemd.link.html

                                  Поттеринг потихоньку превращает всё в systemd
                                  Ответить
                                  • > Поттеринг потихоньку превращает всё в systemd

                                    леннарт за всё берётся смело
                                    всё превращает в systemd
                                    а если systemd он пилит
                                    то просто тратит меньше сил
                                    Ответить
                                  • А вообще пора бы молодому коколению вырвать знамя передовиков переписывания, объявить о фатальном недостатке и сделать уже наконец systemdd.
                                    Ответить

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