ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1259575
Adept (16.11.2022 20:39, просмотров: 5452)
увлёкся условной компиляцией :(( 

велик соблазн сделать одну прогу для множества похожих устройств и определив тип устройства в дефах, "лёгким движением руки" получить прогу для нужного варианта железа. В принципе давно так примерно и делаю, удобно, особенно на АСМе :), но вот в текущем проекте директив условной компиляции стало чуть больше, чем дохрена (разбросанных по разным файлам) Внезапно (вот прям случайно, можно сказать :( обнаружил, что часть функционала для определённого "железа" (читай типов устройств, т.е. переменных, влияющих на сборку программы) не работает :(

два дня ёбся с поиском что к чему, пока не додумался выводить по директиве #message определения и переменные в нужных местах. По логу сборки увидел, что в некоторых местах переменные не определены (по умолчанию считаются вот нулевыми или прямо слово подставляется, ну а в числовом выражении 0) препроцессор ессно не проверяет ни соответсвие типов, ни то, что на момент применения переменная не определена :(( всплывала уже эта тема тут недавно :( ессно в некоторых местах ставлю проверку на "неопределение" врукопашную, но везде не проставишь такое :(

критичным оказался в этом случае и порядок директив #include . В общем 2 дня убитого времени (когда его совсем нет, т.к. сдача проекта :(( и проблема на ровном месте :((

Сразу вспомнились детские годы овладевания языками программирования, начиная с бэйсика :)) где необъявления переменных и их типов, а так же всяческие "умолчания" создавали массу проблем и трудноловимых глюков :(( зато с каким кайфом я потом изучал паскаль :)) (до сих пор считаю его одним из лучших или даже лучшим языком по соотношению красотапростота/надёжностьэффективность


В общем нужно помнить, что сишный препроцессор - древнейшее говно мамонта с кучей недоработок и пользоваться им нужно умело крайне осторожно и дозированно :((


P.S. "крик души", в общем.... потеряных два дня, блять :(( пойду домой, напьюсь, и по телефону пошлю заказчика "нахуй" :))) (шЮтка :))

...делать нужно так, как нужно. А как ненужно - делать не нужно (С) Винни-Пух :)