Мы тут немного уже страдаем от бедности нашего языка С. С учётом того, что мы качество кода ставим одним из важнейших приоритетов - возникла мысль посмотреть в сторону С++.
Нужно понимать, что если С++ условно говоря 10 различий от С - мы не обязаны обязательно бросаться и использовать ВСЕ фичи С++. Я пока вижу С++ просто как бесплатное (на уровне откомпилированного кода разницы нет) улучшение синтаксиса. Например, как у нас не было кучи/heap/менеджера памяти - так у нас этого и не будет пока. Однако связать структуры и функции в объекты например хотелось бы.
С++ как минимум стоит изучить, кому-то однажды.
https://sourceforge.net/p/rusefi/tickets/33/
Есть мнение, что С++ мы можем получить не особо напрягаясь. ChibiOS точно готов к C++. Поэтому чем обсуждать как именно ходить по полю граблей С, можно и правда соскочить на С++.
Если кто-то попробует озвучить 'гениальное' мнение, что мы на этом потеряем три такта - я буду громко ругаться.
Мне идея С++ нравится всё больше и больше, но у меня список задач на месяц программинга Мне с этим нужна помощь.
А не попробовать ли на нам С++?
- AndreyB
- Site Admin
- Posts: 14327
- Joined: Wed Aug 28, 2013 1:28 am
- Location: Jersey City
- Github Username: rusefillc
- Slack: Andrey B
А не попробовать ли на нам С++?
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Re: А не попробовать ли на нам С++?
Я являюсь фанатом ООП но нам оно нужно как собаке пятая нога.
Почему? Наверное потому что ООП без наследования и полиморфизма не имеет смысла.
Его элементарно заменить на "соглашение о вызовах" и/или хранение нужную информации в одной глобальной структуре.
Зачем на виртуальные методы? Зачем наследование? Оно было бы полезым в чиби с его конструкцией vmt, но не на нашем уровне.
Я прошу прощения конечно, но пока я даже банального мэнеджера памяти не вижу (угу, С++, без работы с кучей?). Точнее вижу его в каком то виде в исходниках чиби и почти полное отсутствие использования в прошивке.
Почему? Наверное потому что ООП без наследования и полиморфизма не имеет смысла.
Его элементарно заменить на "соглашение о вызовах" и/или хранение нужную информации в одной глобальной структуре.
Зачем на виртуальные методы? Зачем наследование? Оно было бы полезым в чиби с его конструкцией vmt, но не на нашем уровне.
Я прошу прощения конечно, но пока я даже банального мэнеджера памяти не вижу (угу, С++, без работы с кучей?). Точнее вижу его в каком то виде в исходниках чиби и почти полное отсутствие использования в прошивке.
Re: А не попробовать ли на нам С++?
Кстати, к слову. Cтандарт языка C для критических систем запрещает динамическое распределение памяти.
- AndreyB
- Site Admin
- Posts: 14327
- Joined: Wed Aug 28, 2013 1:28 am
- Location: Jersey City
- Github Username: rusefillc
- Slack: Andrey B
Re: А не попробовать ли на нам С++?
Куча это очень рискованно, так что кучи у нас не будет точно.Sergey89 wrote:Кстати, к слову. Cтандарт языка C для критических систем запрещает динамическое распределение памяти.
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
- AndreyB
- Site Admin
- Posts: 14327
- Joined: Wed Aug 28, 2013 1:28 am
- Location: Jersey City
- Github Username: rusefillc
- Slack: Andrey B
Re: А не попробовать ли на нам С++?
В полном дистрибутиве ChibiOS есть демка ChibiOS_2.6.1\demos\ARMCM4-STM32F407-DISCOVERY-G++ - там как раз main.cpp
Как-то вроде ничего страшного.
Как-то вроде ничего страшного.
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
- AndreyB
- Site Admin
- Posts: 14327
- Joined: Wed Aug 28, 2013 1:28 am
- Location: Jersey City
- Github Username: rusefillc
- Slack: Andrey B
Re: А не попробовать ли на нам С++?
Итого: https://sourceforge.net/p/rusefi/tickets/33/ сделан, у нас появился первый объект - так что технических проблем нет, С++ без динамической памяти скомпилировался и работает.
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Re: А не попробовать ли на нам С++?
Я вот не понимаю - в чем цель таких переходов?
Cейчас С без + чем то ограничивает разработку?
Cейчас С без + чем то ограничивает разработку?
Re: А не попробовать ли на нам С++?
у человека красота - критерий истины
- AndreyB
- Site Admin
- Posts: 14327
- Joined: Wed Aug 28, 2013 1:28 am
- Location: Jersey City
- Github Username: rusefillc
- Slack: Andrey B
Re: А не попробовать ли на нам С++?
Да и ассемблер не ограничивает разработку, можно и на ассемблере.Maxi wrote:Я вот не понимаю - в чем цель таких переходов?
Cейчас С без + чем то ограничивает разработку?
С с плюсом чуть-чуть элегантнее, а есть он при этом особо не просит - так что почему нет?
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Re: А не попробовать ли на нам С++?
ну хотя да :
Code: Select all
<c++ code>
extern "C" {
<C code>
}
- AndreyB
- Site Admin
- Posts: 14327
- Joined: Wed Aug 28, 2013 1:28 am
- Location: Jersey City
- Github Username: rusefillc
- Slack: Andrey B
Re: А не попробовать ли на нам С++?
Дима, ты не прав - твой пример не про код, а про заголовки. А заголовки это в любом случай ужас
И от этого можно уйти, если переименовать все файлы в .cpp Однажды до этого дойтут руки, и этого шайтана не будет - но сейчас избавляться от этого мы времени тратить не будем.
И от этого можно уйти, если переименовать все файлы в .cpp Однажды до этого дойтут руки, и этого шайтана не будет - но сейчас избавляться от этого мы времени тратить не будем.
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Re: А не попробовать ли на нам С++?
а зачем торопиться? никуда ничего не денется