-
- может здесь не прекомпилятор нужен а git - NAUT(18.11.2022 18:38)
- 1) 33 проекта в одном воркспейсе, ЧЯДНТ? 2) Препоцессоры разные, IAR предупреждает, типа использовано 0 3) никто не отменял #else #error #endif - VLLV(17.11.2022 12:44)
- Последствия неправильной реализации правильной идеи. Для серии
устройств с разным функционалом этот функционал обрамляется
условными директивами в одном или нескольких местах. il-2(302 знак., 17.11.2022 07:17)
- Можете подробней описать механизм? - Dingo(17.11.2022 08:09)
- Вот файл conf_target.h из проекта: il-2(5119 знак., 17.11.2022 16:04)
- ОС какая? - MBedder(18.11.2022 22:39)
- Воу-воу, "Бобёр, выдыхай!" Спасибо, но явно перебор. О_о - Dingo(18.11.2022 04:41)
- проверим у себя General(9331 знак., 17.11.2022 17:27)
- Мдя... Все претензии к Генералу. Не буду ничего трогать пока он не
увидит. - il-2(17.11.2022 16:07)
- а ты откуда копировал? General(1150 знак., 17.11.2022 17:13)
- Из редактора FAR-Manager - il-2(17.11.2022 17:37)
- а ты откуда копировал? General(1150 знак., 17.11.2022 17:13)
- Вот файл conf_target.h из проекта: il-2(5119 знак., 17.11.2022 16:04)
- Можете подробней описать механизм? - Dingo(17.11.2022 08:09)
- эт да, желание свобод и вольностей быстро разбивается о биту действительности и сразу же появляется желание иметь большой высокий крепкий забор с вышками и пулемётами. и чтоб ни одна падла! LordN(3 знак., 17.11.2022 06:13)
- Ну если "страдать препроцессором" - то почему не используете #ifdef
#ifndef #if #else #error ???? Zoro(246 знак., 16.11.2022 21:33)
- всё это используется, но именно, что крайне муторно прописывать кв
каждом месте (переменных с два десятка, да ещё важны их комбинации
:(( - Adept(16.11.2022 21:40)
- Делаю так: есть файлик project.h, в котором перечислены в
правильном порядке все используемые #define с комментариями для
чего они. Этот файл копируется в новый проект и там ненужные
#define можно закомментировать (но не удалять!). Ещё хороший
вариант использовать вместо конструкции #ifdef что-то вроде #if
(OPTION_1 == TRUE) && (OPTION_2 == FALSE) - тогда не получится
забыть определить опции, потому что не скомпилируется. - LightElf(16.11.2022 23:05)
- вот "сюда" и добавляется #error Zoro(34 знак., 17.11.2022 10:46)
- Делаю так: есть файлик project.h, в котором перечислены в
правильном порядке все используемые #define с комментариями для
чего они. Этот файл копируется в новый проект и там ненужные
#define можно закомментировать (но не удалять!). Ещё хороший
вариант использовать вместо конструкции #ifdef что-то вроде #if
(OPTION_1 == TRUE) && (OPTION_2 == FALSE) - тогда не получится
забыть определить опции, потому что не скомпилируется. - LightElf(16.11.2022 23:05)
- всё это используется, но именно, что крайне муторно прописывать кв
каждом месте (переменных с два десятка, да ещё важны их комбинации
:(( - Adept(16.11.2022 21:40)
- Каждому инструменту своё место. Часть платформозависимого кода надо
выносить в отдельные места, а не ифдефами страдать... POV(218 знак., 16.11.2022 20:49, картинка)
- Поддерживаю. Иначе с появлением очередной версии железа точно мозга за мозгу зайдёт. - 2dimka(17.11.2022 03:16)
- У этого подхода тоже недостаток - в случае ошибки, например, в фале
i2c_tree в общем куске надо будет во всех папках, где есть этот
файл, править. Не факт, что забудешь. В общем, попробовав оба
подхода, могу сказать, что меняешь забывчивость определения дефайна
на забывчивость корректировки файла. - symbions(16.11.2022 21:16)
- Спасибо за формулировку: "меняешь забывчивость определения дефайна на забывчивость корректировки файла" - Dingo(17.11.2022 05:37)
- Ну, при переходе к следующей платформе ошибок быть не должно. Иначе
странно заниматься портированием нерабочего проекта. Но если пришла
мысль как можно полезно что-то изменить, то менять надо везде. - POV(16.11.2022 21:43)
- Ну или через пару-трройку лет нашлась редкая ошибка - а у вас уже в трёх-четырёх приборах этот софт живёт - symbions(17.11.2022 14:04)
- Согласно последним решением пленума надо писать не #define XYZ (10)
, а const int XYZ=10;, но я все время забываю так делать. - IBAH(16.11.2022 20:45)
- А еще правильнее constexpr int XYZ=10; - VladislavS.(17.11.2022 08:29)
- А ещё правильнее static constexpr int XYZ=10; - VVB(17.11.2022 12:12)
- Ха! Нет конечно! Она и так неявно статик. Для глобального
объявления правильнее inline constexpr int XYZ=10; VladislavS.(55 знак., 17.11.2022 12:55, картинка, картинка)
- зачем инлайнить constexpr? - VVB(17.11.2022 14:30)
- Если он написан в заголовочном файле, то будет в нескольких
единицах трансляции. inline сделает его одним и тем же для них.
Видео то посмотрите. Это должно от зубов отскакивать. - VladislavS.(17.11.2022 15:15)
- Инайнить выражение, в заголовочном файле, чтобы получить один,
глобальный, экземпляр обьекта? Выглядит, малость, через жопу. Nikolay_Po(348 знак., 18.11.2022 09:43)
- Ну а где как не в заголовочном файле должна быть определена константа для разных единиц трансляции? Это раз. Не надо один язык программирования оценивать с колокольни другого. Это два. Код в заголовочных файлах позволяет в одной единице трансляции иметь максимум кода, что помогает оптимизации. Это три. - VladislavS.(18.11.2022 18:45)
- Инайнить выражение, в заголовочном файле, чтобы получить один,
глобальный, экземпляр обьекта? Выглядит, малость, через жопу. Nikolay_Po(348 знак., 18.11.2022 09:43)
- Если он написан в заголовочном файле, то будет в нескольких
единицах трансляции. inline сделает его одним и тем же для них.
Видео то посмотрите. Это должно от зубов отскакивать. - VladislavS.(17.11.2022 15:15)
- Чем дальше, тем больше С++ превращается в набор шаманских
заклинаний. - =AlexD=(17.11.2022 13:02)
- Не удивлюсь, если эти декаденты и абсент с димедролом пьют - IBAH(17.11.2022 16:58)
- нигилисты :-) SciFi(2 знак., 17.11.2022 17:00, ссылка, картинка)
- Если не учить физику и химию в школе, то вся жизнь наполнится чудесами и волшебством - VladislavS.(17.11.2022 13:19)
- Как это у них модно говорить "синтаксический сахар". Гавнище плюсы
начиная с 11го. - POV(17.11.2022 13:04)
- Авторство не моё, но очень нравится VladislavS.(1 знак., 17.11.2022 13:08, картинка)
- Не удивлюсь, если эти декаденты и абсент с димедролом пьют - IBAH(17.11.2022 16:58)
- Докатились. Без часового видеоинструктажа уже и переменную не
объявить. Вы там в стране плюсов ещё не заметили, что вся эта
халабуда давно катится куда-то не туда? :-) - SciFi(17.11.2022 13:00)
- Не переменную, а константу. И что-то конструктивное у вас есть, а
не просто наброс на вентилятор? - VladislavS.(17.11.2022 13:02)
- есть. Расскажите моему пиковскому компилятору про constexpr, а static он поместит в кодовую память и будет оттель извлекать инструкциями чтения этой кодовой памяти. Кто пишет на Си пусть и пишет на Си. define и enum вот инструменты , которые нам доступны в ЛЭБОМ компиляторе. - abivan(17.11.2022 14:31)
- Не переменную, а константу. И что-то конструктивное у вас есть, а
не просто наброс на вентилятор? - VladislavS.(17.11.2022 13:02)
- зачем инлайнить constexpr? - VVB(17.11.2022 14:30)
- Ха! Нет конечно! Она и так неявно статик. Для глобального
объявления правильнее inline constexpr int XYZ=10; VladislavS.(55 знак., 17.11.2022 12:55, картинка, картинка)
- А ещё правильнее static constexpr int XYZ=10; - VVB(17.11.2022 12:12)
- Согласно кому/чему знаю. Согласно кого/чего слышал, и не одобряю.
Согласно кем/чем первый раз слышу! - SciFi(16.11.2022 21:03)
- в этой фразе можно доебаться только до буквы е в слове решением т.е. до сочетания множественного и единственного числа в том месте где д.б. либо либо. - LordN(17.11.2022 06:17)
- лингвофашыст! У нас свободная страна - IBAH(16.11.2022 21:21)
- Можно объявить безграмотность одной из букв в лгбт, тогда можно
привлечь за это самое. Шах и мат! - SciFi(16.11.2022 22:21)
- лгбт - лига гр..ых безграмотных тупиц? - symbions(17.11.2022 14:09)
- Можно объявить безграмотность одной из букв в лгбт, тогда можно
привлечь за это самое. Шах и мат! - SciFi(16.11.2022 22:21)
- А еще правильнее constexpr int XYZ=10; - VladislavS.(17.11.2022 08:29)