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

    +137

    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
    #include <stdio.h>
    
    #define template_pair_declare(x,y) \
    struct x##_##y##_pair \
    { \
        x first; \
        x second; \
    }
    
    #define template_pair(x,y) struct x##_##y##_pair
    
    #define template_mkpair_declare(x,y) \
    template_pair(x,y) mkpair_##x##_##y(x _first,y _second) \
    { \
        template_pair(x,y) res;res.first=_first;res.second=_second; \
        return res; \
    }
    
    #define template_mkpair(x,y) mkpair_##x##_##y
    
    template_pair_declare(int,int);
    template_pair_declare(float,float);
    
    int main()
    {
        template_pair(int,int) ip;
        scanf("%d%d",&ip.first,&ip.second);
        printf("Sum: %d\n",ip.first+ip.second);
        template_pair(float,float) fp;
        scanf("%f%f",&fp.first,&fp.second);
        printf("Sum: %f\n",fp.first+fp.second);
        return 0;
    }

    Шаблонные структуры и шаблонные функции для труЪ сишников.

    Запостил: frp, 24 Августа 2010

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

    • В 7-й строке ошибка.
      Ответить
    • боян же, нэ?
      Ответить
      • А по мойму вроде не было (гугл не нашел) (по крайней мере шаблонных структур не было) (Шаблонные функции я здесь уже постил)
        Ответить
    • А зачем слеши на концах строк?
      Ответить
      • Компилятор, если видит слэш в конце строки, считает что следующая продолжение текущей.
        Ответить
      • Потому что по другому нельзя объявить дефайн на несколько строк.
        Ответить
      • экранирует перевод строки
        Ответить
    • Круто...
      Ответить

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