Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Re: Вопросы по С/С++ (СИ)

Пт сен 02, 2022 04:02:23

подскажите код в С# который бы удалял из числа все точки
допустим 123.123.123.123
стало 123123123123

Re: Вопросы по С/С++ (СИ)

Пт сен 02, 2022 07:21:04

Код:
"123.123.123.123".Replace(".", "")

Re: Вопросы по С/С++ (СИ)

Чт дек 22, 2022 20:14:42

Доброго времени суток господа Коты.
Есть такой вот код.
Передача аргумента по адресу и "как обычно".
Оба фрагмента рабочие.
Какой из двух вариантов предпочтительней и в каких случаях?
using = это чтобы не писать крокодилообразное GPIO<BOARD_Pins::D1>;

Добавлено after 43 minutes 40 seconds:
А пока курю это...
https://habr.com/ru/post/251091/

Re: Вопросы по С/С++ (СИ)

Чт дек 22, 2022 21:34:40

Эйлер Леонард писал(а):"как обычно"
Это называется "по значению" :)
Разница огромная. Когда идёт передача по значению, то весь объект, при передаче в аргумент, копируется полностью. При этом, создаётся новый объект, с которым мы внутри функции и работаем. А по указателю (или ссылке) - передаётся только адрес объекта. И работаем мы уже с переданным объектом.
К слову, при передаче по значению, в классе должен быть реализован конструктор копирования. Без него передача - плохая идея, особенно если в классе используются указатели.

Re: Вопросы по С/С++ (СИ)

Чт дек 22, 2022 22:26:48

Какой из двух вариантов предпочтительней и в каких случаях?
Ни тот, ни другой. Не надо без необходимости создавать и передавать объекты. Продолжайте передавать типы в шаблоны и делать статические методы. Посмотрите очень упрощённый пример на godbolt. Там не создано и не передано ни одного объекта. Понятно, что объекты с состояниями придётся создавать. Но лучше их никуда не передавать, ибо AVR и С++ надо очень аккуратно.

Re: Вопросы по С/С++ (СИ)

Пт дек 23, 2022 00:44:29

OK. Как раз таки ещё один вариант с шаблонами я и проверял. Лампочка загорелась. Да вот удалил этот кусочек зачем-то. Хочу эти пины GPIO(ссылка) передать в конструктор класса, ну там чтобы ими шурудить что-нибудь.
Вложения
Test-0.png
Test-0
(23.66 KiB) Скачиваний: 34

Re: Вопросы по С/С++ (СИ)

Пт дек 23, 2022 07:18:04

Эйлер Леонард, хотите пожёстче? Пины делаются из портов, объединяются в шины и передаются в классы. Ну и режимы задаются группой. Кое-где надо прикрутить атомарный доступ по вкусу. Ссылка

Re: Вопросы по С/С++ (СИ)

Пт дек 23, 2022 20:02:33

Нашел в своих архивах один очень полезный архив SPI_Master(ссылка 1).GPIO_Master(ссылка 2) Где, как раз и есть многие ответы на вопросы, касательно применяемости шаблонов в С++ для AVR. Ну теперь остается разобрать все это дело по запчастям и собрать заново, ну и что бы все компилировалось в AtmelStudio и фурыкало. :)) Найдено было когда-то на https://github.com/ и скопировано на Google Диск.

Re: Вопросы по С/С++ (СИ)

Сб дек 24, 2022 14:55:08

Эйлер Леонард, хотите пожёстче? Пины делаются из портов, объединяются в шины и передаются в классы. Ну и режимы задаются группой. Кое-где надо прикрутить атомарный доступ по вкусу. ][/spoiler]

С++, шаблоны, классы, объекты... Считаю, всё что можно сделать проще - нужно делать проще.

Re: Вопросы по С/С++ (СИ)

Сб дек 24, 2022 16:35:20

Нет, ну это же понятно, что логику от физики нужно отделять. Один раз написал физику, дальше работаешь с логикой. Ну и выкрутасы с С++ заради чего? Если есть заради чего, то да, а если нет? На кой хрен плести ++ куда надо и куда нет! Или я чего то не понимаю?

Re: Вопросы по С/С++ (СИ)

Сб дек 24, 2022 16:41:10

во-первых, на С/С++ пишут все ардуинщики. это хороший повод :) Во-вторых, представьте, что у вас нет ни лог.анализатора, ни осцилла, ни даже отладочной платы, ну и вообще нет особой цели. А желания песать очень даже есть. Это обычное занятие хеллоуворлдщиков. Вот и начинаются выкрутасы, где надо и где не надо. Ну просто чтоб хоть в чем то себя мог реализовать. Не в материальном, так хоть в писательском плане. Это уже не первый год длится, а всё по тому же кругу.

Re: Вопросы по С/С++ (СИ)

Сб дек 24, 2022 16:56:21

У меня ребёнок заплёл косички в универе... Ну так и хочется сказать словами из анекдота: "Ну, во первых, это красиво..."
Потренироваться - это одно. С другой стороны тренироваться можно и в Brainfuck-е. Почему нет?

Re: Вопросы по С/С++ (СИ)

Сб дек 24, 2022 21:38:30

Ну и выкрутасы с С++ заради чего?
Потому что это тупо более мощный инструмент, позволяющий проще решать сложные задачи. Пример из жизни. Код из обработчика прерываний интерфейса OTG_USB всем известных контроллеров. Во-первых, USB-модулей в контроллере может быть два и не хотелось бы два раза одинаковый код писать. Во-вторых, USB-классы могут быть разные и хотелось бы убрать зависимость кода обработчика от количества и типов обработчиков конечных точек. В-третьих, это прерывание и не хотелось бы лишнего в рантайме делать. С плюсами это примерно так можно сделать. В USB-классе в специальном типе перечисляем все обработчики конечных точек. Заметьте, ни создано ни бита реальных данных, которые пролезли бы в прошивку, мы находимся в области типов.

Теперь переходим к обработчику прерываний. Покажу фрагмент, отвечающий за обработку Data OUT. Задача: инстанцироваться для нужного USB-модуля, выбрать из списка обработчиков только OUT точки и вызвать обработчики.
Не скажу что это простой код, но он решает поставленные задачи. Каждая строчка с constexpr выполняется на этапе компиляции. Из рантайм кода там только (70, 79, 82, 84 и 90) строки для FS-интерфейса и (70, 79, 83, 84 и 95) для HS-интерфейса. Ни каким препроцессором такого не сделать. И потом, это просто красиво!

Re: Вопросы по С/С++ (СИ)

Сб дек 24, 2022 22:19:28

ну да, лучше 20 лет изучать плюсы, чтобы потом за 5 минут код для одного модуля usb переделать на два.

Re: Вопросы по С/С++ (СИ)

Сб дек 24, 2022 22:34:37

Думаете для других задачь плюсы применить нельзя? И да, 20 лет, не меньше!

Re: Вопросы по С/С++ (СИ)

Вс дек 25, 2022 06:16:14

во-первых, на С/С++ пишут все ардуинщики. это хороший повод :)

Как я понимаю, разработчики Ардуино выбрали С++ как раз для упрощения... Что бы начинающие могли использовать Си с классами. Ну а коль используется С++ компилятор, то почему бы не использовать и его другие фишки. Этим многие и пользуются. Но от этого проще не становится.

Добавлено after 5 minutes 4 seconds:
Думаете для других задачь плюсы применить нельзя?

Не думаем. Знаем, что можно. Можно практически везде, где можно обычный Си. Только преимущества его использования совсем не видно. А тот мизер явно не стоит тех усилий по его освоению, ИМХО.

Re: Вопросы по С/С++ (СИ)

Вс дек 25, 2022 09:38:23

Только преимущества его использования совсем не видно.
Допускаю, что в сложном коде не видно, просто потому что непонятно. Хотя именно в сложном коде максимальный эффект. Но есть же и простые свойства, не требующие особого изучения. Вчера показывал картинку
Изображение
Тут иллюстрация засранного пространства имён в С. Казалось бы, почему не использовать в перечислении ADC3 как это указано в мануале? Только вот в заголовочном файле контроллера ADC3 уже задефайнено препроцессором. В С++ Adc3 не вылезет за пределы перечисления и нигде больше мешать не будет. Вроде бы мелочь, но такие мелочи на каждом шагу. Только за более строгий контроль типов уже надо плюс в преимущества ставить.

Re: Вопросы по С/С++ (СИ)

Вс дек 25, 2022 10:08:39

Это мы уже видели. А в прикладном, законченном варианте осмысленного проекта покажете? Ну мы очень просим, покажите конечный результат ваших многолетних хеллоуворлдов?
Про запуск кварца на C++ мы уже поняли. Мигание светодиодов, окаймленное 10-километровыми портянками, поняли. Что дальше? Покажите дальше, конечный результат, о великий гуру портянок хеллоуворлда!
То есть, поймите меня правильно (и не удаляйте мои мессаги!). Вот реально очень хочется увидеть конечный продукт всей этой многолетней портянкоработы. Не обижайтесь, плиз, вот реально вот по-человечески хочется увидеть, что именно дала вам эта многолетняя титаническая писянина для реализации законченного ОСМЫСЛЕННОГО проекта. Не заготовки, не хеллоуворлды, а продукт осмысленный и законченный. Хоть что-нибудь?

Re: Вопросы по С/С++ (СИ)

Вс дек 25, 2022 10:27:07

Ну почему же. С полиморфизмом удобно. Одно и тоже имя функции, а в зависимости от параметров уже сам компилер разберётся кого вызывать. Ну и классы. Для одной кнопки написал, и применяй для других сколько хош. Тоже наследование. Да много чего удобного. Только на результат особо не влияет. В Си делается то же самое, ну может чуть длиннее иногда. По крайней мере для МК. Почему я и стараюсь писать безо всех этих ++ фишек. Ещё потому что приходится для разных семейств писать, а у некоторых ++ просто нет.( Ведь в чём плюс высокоуровневого языка? В переносимости, что бы там не говорили.

Re: Вопросы по С/С++ (СИ)

Вс дек 25, 2022 10:28:56

MLX90640 писал(а):Не заготовки, не хеллоуворлды, а продукт осмысленный и законченный. Хоть что-нибудь?
эх, у меня все продукты примерно такие :(( в различной стадии готовности, вплоть до 99%, и хотя некоторые модули из них давно живут самостоятельной жизнью в чужих проектах, ситуация печальна...
Ответить