|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
Ардуино использует язык С++ хоть и врезанный В известных справочниках ничего не нашел об этом Вот пример кода Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Интересует: CRGBArray <NUM_LEDS> leds; Здесь тоже самое FastLED.addLeds < NEOPIXEL,6 > (leds, NUM_LEDS); Подключение библиотеки принято писать #include <FastLED.h> С этим смирился. Почему нужно использовать < > не знаю, но все так делают... Но в этой библиотеке нашел например вот это Код: plaintext 1.
Не понимаю.. Хоть как называется подскажите, а я уже сам найду почитаю Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 01:57 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
https://en.cppreference.com/w/cpp/language/templates Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 02:32 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 02:43 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
Андрей159 Код: plaintext 1. 2. 3.
Шаблон должен принимать в качестве типа тип а не константу. Андрей159 Код: plaintext 1.
Андрей159 Подключение библиотеки принято писать #include <FastLED.h> С этим смирился. Почему нужно использовать < > не знаю, но все так делают... В С было заявлено что подключаемый файл в угловых скобках ищется во всех каталогах заявленных как библиотечные. Те что настроены как библиотечные при сборки компилятора. Например /usr/include:/usr/local/include на юниксах, и аналогичные на виндовых компиляторах. К ним добавляются каталоги заданные ключём -I. Альтернативой к угловым скобкам являются двойные кавычки - они означают что искать подключаемый файл надо начиная с текущего каталога (обычно это основной каталог проекта). В С++ эта традиция продолжилась. Так что если видишь #include <file> это библиотечный заголовок, а #include "file" это местный, принадлежащий конкретно этому проекту. Андрей159 Но в этой библиотеке нашел например вот это Код: plaintext 1.
Смысл шаблона в том, что можно задать некую функцию/класс и объявить что она работает с каким-то абстрактным типом. А потом, по факту создания объекта уже задать конкретный тип и компилятор уместит этот тип внутрь функции. А тут мы видим создание шаблона на конкретном типе.... И смысл это делать шаблоном? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 05:43 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
White Owl Андрей159 Код: plaintext 1. 2. 3.
Шаблон должен принимать в качестве типа тип а не константу. А как же std::array ? Я подозреваю все ради того чтобы на стэке место под массив выделить. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 07:21 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
White Owl Это бардак и издевательство. Оно вообще не должно компилироваться. Шаблон должен принимать в качестве типа тип а не константу. Это вам в Rust :) Там кажется шаблоны еще не умеют non-type params (но обещают сделать). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 12:13 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
Пока что до конца не понял. Попробую с нуля проект создавать и поиграюсь. Думал прокачаюсь, но толком объяснений не нашел. Придётся экспериментировать. Наверное Здесь и лежит библиотека . Правда я подключал ее по другому, указав только FastLED, а остальное само подгрузилось в качестве библиотеки, но проверял по содержимому, вроде как одно и тоже. В папке SRC есть файл FastLED.h При записи Код: plaintext 1.
уже каша в голове, а при Код: plaintext 1.
(в строке 364) вообще полное непонимание что происходит Проект запускается на микроконтроллере Arduino Nano/Mega, но если подключить (инсталлировать) библиотеку, а если файлы скопировать в одну папку к проекту, то ошибка, хотя должно было работать Возможно мне стоит поучить язык С глубже ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 14:19 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
Андрей159 Возможно мне стоит поучить язык С глубже Я бы советовал какую-нибудь книжку прочитать. Тут есть такие конструкции, аналоги которых в других ЯП просто отсутствуют. PS У тебя С++, это не С. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 14:23 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
Андрей159, Код: plaintext 1.
Тут объявляется прототип функции addLeds, сама функция где-то ниже определена. Код: plaintext 1.
А тут - глобальная переменная "с" с типом CHIPSET<RGB>. Это если честно основы, без знания которых написание программ ни на С ни на С++ невозможно. Поэтому начинать надо с литературы для начинающих, в данном случае по С++. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 15:11 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
Заметили, что программистов все больше и больше, обучения на каждой шагу, а нужной информации становится все меньше и меньше, точнее мало кто освещает. Все разбросано, море неразберихи. Как раз тот случай, когда нужно действительно возвращаться к книгам, так как в интернете один копипаст и то слизан из слабеньких источников. В источниках об Ардуино нигде ни слова о том что я ищу. P.S. Сорян за баян. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 15:31 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
Про С++ можешь тут почитать . ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 15:42 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
Андрей159 Заметили, что программистов все больше и больше Андрей159 В источниках об Ардуино нигде ни слова о том что я ищу. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 15:50 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
Андрей159 Заметили, что программистов все больше и больше, обучения на каждой шагу, а нужной информации становится все меньше и меньше, точнее мало кто освещает. Все разбросано, море неразберихи. Как раз тот случай, когда нужно действительно возвращаться к книгам, так как в интернете один копипаст и то слизан из слабеньких источников. В источниках об Ардуино нигде ни слова о том что я ищу. P.S. Сорян за баян. Я заметил что 25 лет назад я вообще не мог ничего найти. Нужно было ходить к преподу или к старшекурсникам. Или идти в местную научно-техническую библиотеку и искать книги по теме. Или топтать F1 в среде Borland или TechHelp. И то не факт... Сегодня ты имеешь шанс найти то что нужно. Сможешь ли воспользоваться шансом - зависит от тебя. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 18:02 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
mayton, позволю себе такое некомпетентное мнение: На мой взгляд, на сегодня, по целому ряду, в том числе сугубо исторических причин, C++ в целом - язык с зашкварно высоким порогом вхождения. Даже для людей с более или менее, хотя бы приблизительно сформированным "программистским" мышлением. Ох, а я, к сожалению, знаю детские кружки, где ребята 10-12 лет "программируют" на С++. Выглядит это как душераздирающее зрелище, когда такой ребёнок говорит тебе - "я программирую на C++". Ну да, задачки там вроде тех пресловутых начальных Литкодовых, всякий и мальчик и девочка из кружка щёлкает их с превеликим удовольствием. Но глазам на код смотреть больно. Что это - даже точно определить затрудняюсь. В плане наработки некоего первичного алгоритмического тулбокса - так можно делать, в расчете на то, что собственно владение именно языком, во всем его многообразии, придет потом, а сейчас надо дать пощупать в пальцах алгоритмы. И придет именно потому, что у детей сохраняется возможность и к преподавателю подойти и со "старшекурсниками" о чем-то перетереть... Ох не нравится мне это, когда почти каждый следующий шаг на тему - а давай посмотрим, что здесь можно сделать со структурой кода, спотыкается об им еще совсем неведомые пласты образования. Как-то хотелось бы думать, что было бы хорошо, если бы у каждого котенка было ощущение, что он нечто целое и самостоятельный интерес представляющее, может делать в каждый конкретный момент времени. А так им приходится скелетики из спичек собирать, методом написания бессмысленных циклов в стиле "точка-точка, огуречик, вот и вышел человечек". Про циклы им уже рассказали, а как искать его инвариант - дети уже интуитивно поняли, но словей таких еще не знают... "Повбивав бы" изобретателей таких кружков... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 18:42 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
В данном случае речь идет скорее о кружке Ардуино. А там С++ не особо важен. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 19:13 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
booby C++ в целом - язык с зашкварно высоким порогом вхождения. Даже для людей с более или менее, хотя бы приблизительно сформированным "программистским" мышлением. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 19:53 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
Я думаю что С++ является не сложным а скорее "спорным" языком. Ни в одном ЯП нет такого числа технических споров вокруг решения какой-либо бизнес задачи. Причем чем сильнее мы выходим из контекста языка С++ в интеграцию с другими языками и сетевыми протоколами - тем сильнее и жарче идут дебаты а том сколько бит в целом числе или в какой кодировке была передана строка. Или как правильно кастить void * на объект. О строках можно складывать легенды. Даже в этом подфоруме раз в квартал возникает спор об utf-8 или национальной кодировке. В других языках подобные споры - вялые и неярко выраженные. И сам спорный вопрос просто вынесен за скобки языка. Вы не создадите спора просто пользуя язык. Дидактические свойства С++ просто ужасны. Тут я просто готов согласиться с Столяровым в том что рассказать на первой лекции что такое взятие адреса переменной в scanf - то это заберет пару лекций и еще отобъет желание изучать язык вообще. И понятное дело - сообщения об ошибках компиллятора С++ адресованы профессионалам. Их нельзя показывать школьникам. От этого школьники впадают в тоску и уходят в тик-ток. Вобщем сложное это дело... обучение. Ко всем остальным свойствам С++ это не относится. Во всём остальном (геймдев и хайлоад) он прекрасен. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 20:48 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
a.guest, Ах, оставили бы вы эти изыски от Дейкстры. Мое мышление формировал Fortran, а Basic - да был, и, хоть и потерял исходное родство, и даже умер по сути , но некоторые первородные черты сходства с фортраном сохранял почти до последнего момента. Не было бы фортрана - в прикладном программировании вообще ничего не было бы. Всё вообще, что произошло, происходило под лозунгом "мы сделаем либо лучше, либо проще, чем Fortran". Кстати, когда мне, примерно в 87м (если память не сильно обманывает) всучили 5-дюймовою дискету и сказали - "на ней CP/M и новый язык С", моя естественная реакция была тогда такая: - Ну, и зачем нам это языковое убожество, в условиях, когда Pascal уже 15 лет как существует, а фортран на днях 40-летие отметит? Здорово, что компилятор так мало места занимает, но мы же не собираемся на этом писать бессмысленные операционные системы. Это вообще не наша задача . ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 21:28 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
Анализировал. В Бейсике только очень не хватало упрощения в работе с объектами и массивами (что языках помоложе потом сделали). Вот любимый кого-то Пайтон - почти тот же Бейсик, кросплатформенный, но такой медленный. И .net медленный. Красавчик Java Script - простой, но быстрый. Прочитал две библии: Visual Basic 6 и C++. В Visual о классах можна найти почти в конце книги, а С++ с классов начинается. Разницы большой нет, но по быстродействию VB6 будет работать медленней, если делать обертки классами. В книге С++ учат мыслить даже простые задачи классами. Я видел как умер проект ImageCMS (интернет магазин) сделанный на PHP какими-то Сишниками. Они абсолютно все обернули по несколько раз в классы. Интернет магазин не выдерживал простой нагрузки. Потом подумали и решили переписали на WordPress)))) кинув своих клиентов. Ну короче... Сказать, что Visual Basic пипец какое ничтожество... никогда не скажу.. наоборот он быстрый и досих пор пользуюсь. Его ведь включили в офис. Все и так устраивало, но со временем пришлось учить Си подобные синтаксисы через миграцию в веб программирование и интерес к новым языкам только рос, но я не обсуждаю языки в которых не программировал. Еще в современных языках с помощью include можно подключать код из разных мест. В VB это и многое другое было упрощено и вообще скрыто. В остальном все похоже, за исключением работы компиляторов. Каждый язык заслуживает уважения. Но вот современное программирование это уже не программирование, а инсталляция. Инсталировал с ГитХаба одно, другое и уже все работает. Но спустя какое-то время все начинает отваливаться. Версия языка изменилась. Внезапно Гугл в API перестает поддерживать старую версию и принуждает подняться до последней версии, другие модули выдают непонятные ошибки - в итоге все развалилось. Ладно если проект собственный, а как можно гарантировать клиентам на долгий срок? Мыльный пузырь современные языки. Все красиво и стремительно. Еще один язык толком не выучили, а уже используют язык в языке: Vue, React, Angular. Для каких целей? Обычную страницу отобразить? Серьёзно? Почему Го не популярен если он может использовать все ядра? Не язык плохой. Штамповать на нем не интересно компаниям. Нужен дешевый конвейер, дешевая раб сила и поток клиентов. Visual сюда никак не вписался. Всего лишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 22:33 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
Андрей159 И .net медленный. Почему медленный? Есть какой-то сравнительный тест? И что было эталлоном в сравнении? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 22:44 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
Проверял только на циклах с числами long с тройным вложением. Работает .NET в два раза медленней чем VB6. Пайтон, не помню, почти в 10 раз. JS приблизительно одинаково. С++ был быстрее больше чем в два раза (не акцентировал внимание). Замер подбирал приблизительно на ожидание в 30 секунд времени начиная с VB6. Использовал студию 2019 Enterprise 16.4.0 и предыдущую которую уже снес. Там что на одном языке, что на другом - тест отработает одинаково ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 22:57 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
Андрей159 Проверял только на циклах с числами long с тройным вложением. Работает .NET в два раза медленней чем VB6. Отакзываюсь в это поверить. Возможно эксперимент мерял побочный эффект (JIT включился как раз в эти 30 секунд). Или VB6 просто ничего не делал выбросив цикл из вычислений. Такое тоже бывает. Можешь показать сорцы? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 23:08 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
mayton Андрей159 Проверял только на циклах с числами long с тройным вложением. Работает .NET в два раза медленней чем VB6. Отакзываюсь в это поверить. Возможно эксперимент мерял побочный эффект (JIT включился как раз в эти 30 секунд). Или VB6 просто ничего не делал выбросив цикл из вычислений. Такое тоже бывает. Можешь показать сорцы? Классический VB никто никогда не учил и не планировал учить не только выбрасывать цикл из вычислений, но и, тем более, "оптимизировать" вычисляемые выражения. Это как раз одна из черт, общая для бейсика и исходного фортрана (которую он утерял с переходом к оптимизирующим компиляторам) - уважение к тому, что написал программист. Что написано, то и проиграно, и не надо ни в каких местах местах драть на себе волосы от приливающего в мозг восторга в результате деятельности оптимизатора. Но его учили компилироваться в "нативный" код, с отключением проверки попадания индекса в границы массива. Так что, вдвое быстрее работающий C это не то, что-бы совсем уж вранье, но при аккуратном подходе, и не перебарщивая с вызовом встроенных функций, процентов 30 сишному коду можно было надежно выигрывать проигрывать. Уж, для VB6 - точно, его сделали совершенным во всех внутренних кишках com-клиентом, даже там, где в этом не было видно никакой особой необходимости. Предшествующий ему VB5 в тех же режимах компиляции и на тех же циклах работал отчетливо на 15-20 процентов быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 00:57 |
|
Помогите с синтаксисом<не понимаю что это>
|
|||
---|---|---|---|
#18+
Андрей159 Проверял только на циклах с числами long с тройным вложением. Работает .NET в два раза медленней чем VB6. Пайтон, не помню, почти в 10 раз. JS приблизительно одинаково. С++ был быстрее больше чем в два раза (не акцентировал внимание). Замер подбирал приблизительно на ожидание в 30 секунд времени начиная с VB6. Использовал студию 2019 Enterprise 16.4.0 и предыдущую которую уже снес. Там что на одном языке, что на другом - тест отработает одинаково В VS2019 нет VB6, есть VB.Net. Т.е. код на VB компилируется в .Net С тестами надо поаккуратней, т.к. компиляторы нынче имеют достаточно продвинутые оптимизаторы, которые могут просто заменить какой-нибудь тестовый расчет в цикле на готовый результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 07:56 |
|
|
Start [/forum/topic.php?fid=57&msg=40117804&tid=2017147]: |
0ms |
get settings: |
22ms |
get forum list: |
22ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
543ms |
get tp. blocked users: |
2ms |
others: | 314ms |
total: | 985ms |
0 / 0 |