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

    Комментарии (30) 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);
        }
        Ответить
    • Теперь всегда так буду писать. Выглядит классно!
      Ответить
    • какой симпатичный, приятный код получается
      #define maxint(a,b) \
        ({int _a = (a), _b = (b); _a > _b ? _a : _b; })
      Ответить
      • Там можно даже не int, а что-то в дуже decltype(a). Забыл как в няшной это назвали.
        Ответить
        • а как в няшной decltype?
          я в какой-то момент его там не нашел, и руками коапировал сигнатурту
          Ответить
          • Да не помню я...

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

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

              Да какое же оно, число Рейнольдса твоей gender fluid?
              Ответить
              • Зависит от того, какая из субличностей пишет.
                Ответить
                • Удобно вам там.
                  Эх, надо было не Снаутом, а Ийоном Тихим назваться, и объяснять, что все глупости от моего имени пишет правая половина.
                  Ответить
                  • Если ты сделаешь так постфактум, мы будем считать что так и было.
                    Ответить
                • А у них знания компутер science одинаковые?
                  Ответить

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