Кресты / Говнокод #15885 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
cKeyCfg::types_t cConfiguration::SearchInType(string type)
{
    CTint i = 0;
    const CTbyte * types[] = { "S", "D" };

    for(i = 0; i < sizeof(types)/sizeof(types[0]); i++) {
      if ( strcmp(type.c_str(),types[i]) == 0) {
        switch (i) {
        case 0: // Is string
          return cKeyCfg::stringa;
        case 1: // Is decimal
          return cKeyCfg::decimale;
        default: //Default value VT_BSTR
          return cKeyCfg::unknow;
        }
      }
    }
    return cKeyCfg::unknow;
}

сделано на родине Fiat'а.

Запостил: Dummy00001 Dummy00001, (Updated )

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

    • намек:
      const struct { char *name; cKeyCfg::types_t type; } types[] = { 
        { "S", cKeyCfg::stringa },
        { "D", cKeyCfg::decimale },
      };

      а если еще и отсортировать, то еще можно и bsearch использовать, для случая если типов и на самом деле будет много.
      Ответить
      • Да ладно перфекционировать. Меня вот только 0, 1, ... напрягли.
        Ответить
        • Перфекционизм - не перфекционизм, но отделение данных от логики всегда хорошо, даже если их будут отделять несколько строчек в пределах одной функции.
          Ответить
        • подтормаживаете батенька. ыы еще раз гляньте на код: в теле цикла switch/case по индексу цикла.

          если бы писал не тормоз, даже по быстрой быструхе это было бы: if ("D") then decimal; else if ("S") then string; else unknown.
          Ответить

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

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8