Чего Вам не хватает в С ?

Тема в разделе "LANGS.C", создана пользователем osox, 14 июн 2010.

  1. RedLord

    RedLord Member

    Публикаций:
    0
    Регистрация:
    23 июн 2005
    Сообщения:
    183
    Адрес:
    Ukraine
    maksim_
    прекрасно. время сборки уменьшается в разы
     
  2. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    maksim_
    Мне кажется, виновата только структура вашего солюшена.
     
  3. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    Что же тогда помешало тебе посчитать количество switch в твоем рабочем проекте, и вычислить % LOC с ними относительно общего? Я отвечу за тебя - ты преувеличиваешь проблему в сотни раз. switch ОЧЕНЬ редко используемый оператор языка.
     
  4. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    J0E, это очень сильно зависит от предметной области. В моей предметной области используется до ануса всяких признаков, кодируемых либо буквой, либо числом. И в зависимости от этого признака с данными надо что-то сделать. А разбирать эти признаки, кроме как switch'ем, особо нечем.
     
  5. J0E

    J0E New Member

    Публикаций:
    0
    Регистрация:
    28 июл 2008
    Сообщения:
    621
    Адрес:
    Panama
    CyberManiac ты КА руками пишешь что ли?
     
  6. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    CyberManiac
    Если Вам так нужен автоматический break, переопределите case и default как
    Код (Text):
    1. #define case break;case
    2. #define default break;default
     
  7. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    J0E, этими цифробуквенными признаками любая АСУчная база данных заполнена в невыносимом количестве.
     
  8. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    green
    Диверсия из серии #define True False; ;))
    Когда код с таким переопределённым case попадёт кому-то на дошлифовку то-то ему радость будет от такого сюрприза :))
     
  9. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    Y_Mur
    :)
    Можно использовать CASE, DEFAULT и т.п.
     
  10. r90

    r90 New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2005
    Сообщения:
    898
    green
    Тогда уж проще препроцессор к C написать, и оформлять switch в стиле pascal, то есть писать что-то в стиле:
    Код (Text):
    1. switch (x) {
    2.   1: что-нибудь делаем;
    3.       продолжаем делать;
    4.   2..5: делаем что-то другое;
    5.   7: ничего не делаем;
    6.   8: и так далее;
    7.   default: ВЫКИНУТЬ_ЭКСЕПШН! СРОЧНО!!!
    8. }
    Кстати, заодно можно и nobreak добавить, если он нужен.
    На паскалеподобные языки переходить может быть сложно и связано с кучей проблем, но препроцессор написать -- это ж вполпинка делается. И единственная проблема в том, что если чел, будучи не в курсах этой всей хрени, заглянет в сорец, то он может и не понять. С другой стороны, действия сего препроцессора выглядят обратимыми, а значит можно в emacs навернуть свой c-mode, который на экране будет показывать pascal-запись, а на диск сохранять чистый C. И никто из коллег даже ни о чём не догадается.