Текст ниже выдран из программы. Попробуйте скомпилировать удалив telNum в среде IDE. String telNum; long distan; long subDis; void setup() { } void loop() { Serial.println(telNum +" DIST " + distan +"SubDis "+subDis); } Это кривой компилятор или я что-то не понимаю? В VS проходит номально.
у тебя в Serial.println используется переменная telNum, поэтому если убрать ее инициализацию в начале скетча, при компиляции будет ошибка.
Надо не иметь в виду, а конкретно спрашивать. Такой код не компилируется совершенно справедливо. У строковых литералов нет функции operator+, а у объектов String эта функция есть. Код (C++): Serial.println(" DIST " + distan +"SubDis "+subDis); Можно из литерала " DIST " сконструировать объект String и прицепить к нему остальные кусочки. Код (C++): Serial.println(String(" DIST ") + distan +"SubDis "+subDis); String("bla bla bla") и "bla bla bla" это совсем не одно и тоже.
Спасибо за пояснение. Нигде не нашел преобразование типов для этого компилятора, и вообще, кругом какая-то разрозненная информация по нему. Последние годы я писал на Шарпе для другого железа. Понадобился короткий проект на Arduino. Я его почти закончил, но все равно буду признателен, если порекомендуете серьезную литературу по Arduino, желательно, не бумажную.
По C++ нет литературы??? Все что сверху C++ наверчено для Arduino описано на arduino.cc. Если в документации что то не ясно, в исходниках библиотек можно порыться. Они не большие.
На Сях писал лет 15 назад, если не больше, тонкости забыл. За ссылку спасибо, но там больше рекламы, чем серьезной литературы. Нет ли законченных изданий где-нибудь? Можно на Английском.
На сайте мало "серьезной литературы" или реклама раздражает? https://www.arduino.cc/en/Reference/HomePage https://www.arduino.cc/en/Tutorial/HomePage
Там самая правильная информация по функциям, какие Си-шные функции действуют и какие не действуют? На разных сайтах список функций разный.
Это скорее краткий справочник по C++ и официальный справочник по функциям ядра Ардуино. Для начала достаточно. А дальше в С++ вникать надо. В сети можно найти ядра для разных микроконтролеров, типа ATtiny, которые на Arduino не используются. В этих ядрах могут быть реализованы не все функции оригинального ядра. Ядро Arduino это по сути функция main, и несколько дополнительных функций для работы с фичами МК. https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/cores/arduino/main.cpp "какие не действуют", не встречал.
Спасибо за ссылку. Привык я к хорошему на C#, не очень приятно вспоминать C++. Взять, к примеру, мою ошибку: у строковых литералов и String одна основа: байт в формате ASCII. Так зачем танцы с бубнами для их сложения? В Шарпе все эти сложения и преобразования типов решаются легко и изящно.
Они создаются одинаково легко. Зачем геморрой при выводе уже созданных объектов? Шарп облегчает рутину, освобождая человека для более важных дел.