-
- Сделает. Inline подставт неявный weak и при линковке будет одна
сущность для всех единиц трансляции. - VladislavS.(06.01.2022 12:36)
- Не факт, я пробовал использовать этот подход при разработке своей
HAL, в частности для хранения частот PLL. Результат был
отрицательный. Ну и вот это вот "неявный weak" - это хрень. evgeniy1294(193 знак., 06.01.2022 12:50)
- Это не хоень, а стандарт языка и это работает. - VladislavS.(06.01.2022 12:59)
- Не факт, я пробовал использовать этот подход при разработке своей
HAL, в частности для хранения частот PLL. Результат был
отрицательный. Ну и вот это вот "неявный weak" - это хрень. evgeniy1294(193 знак., 06.01.2022 12:50)
- Я конечно путаюсь в "Спецификаторах, квалификаторах и шаблонах". misyachniy(159 знак., 06.01.2022 12:35)
- Болбшая ошибка оценивать С++ код в базисе обычного С. Это разные
языки. А видео Михаила Морозова рекомендую всё же посмотреть. Кроме
того что материал полезный, он ещё интересный собеседник. Получите
просто удовольствие от подачи материала. У него ещё есть видео про
то как константы в С++ определять. Тоже неплохо. И всё это
работает, так как стандарт языка. - VladislavS.(06.01.2022 13:00)
- * У него ещё есть видео про то как константы в С++ определять. И что я там нового узнаю? evgeniy1294(586 знак., 06.01.2022 13:18)
- Активно используете extern? - evgeniy1294(06.01.2022 12:36)
- А что ему в С ещё остаётся? - VladislavS.(06.01.2022 13:01)
- Через функцию? Через структуру? Не, нельзя, это же медлееееенно. - evgeniy1294(06.01.2022 13:06)
- Да. - misyachniy(06.01.2022 12:53)
- В этом году я обещал быть культурным и вежливым, поэтому просто
скажу следующее: единственное место, в котором допускаются
переменные, помеченные extern - startup, потому как нет другого
способа получить переменные, размещаемые линкером. В остальных
случаях слудет этого избегать. - evgeniy1294(06.01.2022 13:03)
- Чем предлагаете заменить extern? Вероятно чем-то типа AlexBi(226 знак., 07.01.2022 13:14)
- С точки зрения компилятора и компьютера - нет разницы. Объявления внутри класса/структуры чуть медленнее, т.к. при доступе будет вычисляться адрес/смешение переменной внутри структуры (компилятор это легко оптимизирует, а процессор закеширует). Тут вопрос в другом - в проектировании и стиле написания программы. Текст программы не только для компилятора, но и для программистов в большей степени. Ваш код допустим, но не рекомендуется к применению, т.к. лучше public для данных Costic(769 знак., 07.01.2022 14:46)
- В голом C это делается через функции get/set, в С++ способов
гораздо больше. Приведенный вами пример тоже используется, когда
переменные принадлежат определенному контексту, lwip целиком на
этом. Подразумевается, что количество глобальных переменных
небольшое, например счетчик системного таймера. Большое количество
глобальных перменных без явной на то необходимости, а также
активное использование extern говорит о низкой квалификации
программиста. evgeniy1294(287 знак., 07.01.2022 13:54)
- get/set все же могут значительно снижать производительность программы, тут и лишние вызовы функций, и нарушение работы оптимизатора. Самое главное, непонятно ради чего? Вместо extern v; имеем extern V getV(); и extern setV(V v); В объявлении функций extern написал специально, что бы показать что он есть, хотя его можно не писать. AlexBi(392 знак., 07.01.2022 15:28)
- Фтопку надо тех, кто десятки файлов делает и свои копирайты с лицензиями везде тычит, а кода 1-2 строчки. Costic(1888 знак., 07.01.2022 14:57)
- Ща все брошу и начну перед пенсией перестраивать свое мЫшление. ;-) - misyachniy(06.01.2022 13:16)
- Чем предлагаете заменить extern? Вероятно чем-то типа AlexBi(226 знак., 07.01.2022 13:14)
- В этом году я обещал быть культурным и вежливым, поэтому просто
скажу следующее: единственное место, в котором допускаются
переменные, помеченные extern - startup, потому как нет другого
способа получить переменные, размещаемые линкером. В остальных
случаях слудет этого избегать. - evgeniy1294(06.01.2022 13:03)
- А что ему в С ещё остаётся? - VladislavS.(06.01.2022 13:01)
- Болбшая ошибка оценивать С++ код в базисе обычного С. Это разные
языки. А видео Михаила Морозова рекомендую всё же посмотреть. Кроме
того что материал полезный, он ещё интересный собеседник. Получите
просто удовольствие от подачи материала. У него ещё есть видео про
то как константы в С++ определять. Тоже неплохо. И всё это
работает, так как стандарт языка. - VladislavS.(06.01.2022 13:00)
- Сделает. Inline подставт неявный weak и при линковке будет одна
сущность для всех единиц трансляции. - VladislavS.(06.01.2022 12:36)