1. C++ / Говнокод #5532

    +162

    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
    class Recode
    {
    private:
    	union
    	{
    		INT16U gg;
    		unsigned char g[2];
    	};
    public:
    	Recode(INT16U a)		
    	{
    		gg=a;
    	};
    
    	void recode(void)
    	{
    		coding->recodeArray(g[0], g[1]);
    	}
            //Куча других методов:
            ...
    };
    
    /*#define C Recode
    Recode a[]={1, C(3,4),  2, 34, C(98,23)};
    #undef C*/
    
    #define _ +256*
    Recode a[]={1 , 3 _ 4 , 56 , 0 _ 56};
    #undef _

    Идея интересная, но не для реального кода. :)

    Запостил: Говногость, 04 Февраля 2011

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

    • идея стара с тех пор, как union появился в С
      Ответить
      • А меня здесь больше всего прикалывает это:
        #define _ +256*
        Ответить
        • А чё, красиво.
          Ответить
          • В Паскале так не сделать! :р
            Ответить
            • Жаль, что нельзя написать 2_3
              Или 123 _ 200 _ 300.
              Ответить
              • Почему жаль? За такое ругаться на говнокодера нужно!
                Ответить
              • TarasB, Вы, кстати, поняли как это работает?
                Ответить
                • Нет, мы ещё не проходили!
                  Ответить
                  • Я спрашивал про:
                    Recode a[]={1 , 3 _ 4 , 56 , 0 _ 56};
                    - что в этом случае произойдет? Чем инициализируются g[0] и g[1] в каждом объекте?
                    А что происходит в закомментированном коде?

                    Просто интересно, знает ли паскалист?
                    Ответить
    • Я так понимаю
      Recode a[]={1, C(3,4),  2, 34, C(98,23)};
      через какоето время заменили на
      Recode a[]={1 , 3 _ 4 , 56 , 0 _ 56};
      Видимо им надоел второй конструктор с двумя параметрами (кроме конструктора с одним) и они решили обойтись одним конструктором только с одним параметром. :D
      Ответить

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