Ви не увійшли.
Я не знаю насчет пользовательских литералах.
То, что ты не знаешь языка о котором берёшься спорить, я давно понял, но судя по хамскому ответу, ты и сейчас не посмотрел стандарт, хотя я тебе даже номера страниц указал (я уж молчу о благодарности за это).
Я говорил про обычное именование.
Ну, да, ты посмотрел на мой пример с литералами и сделал к нему замечание "про обычное применение". Зачем? Впрочем, можешь не отвечать, я уже всё понял.
Вы отказывались признать рекомендации не использовать нижнее подчеркивание в именовании
Парень, никогда не спорь о том, чего ты не знаешь (и с теми. кого не знаешь).
Речь там шла о пользовательских литералах. Ты о них раньше слышал? Писал их? А если нет, в чём я уверен, чего ж ты не посмотрел, а сразу спорить-то полез?
Так вот, именно в них (пользовательских литералах) стандарт настоятельно рекомендует использовать подчерки для отделения собственно литерала от суффикса. А беподчерковые литералы считаются зарезервированными для развития языка (сейчас используются "l", "u" и т.п., но планируется расширять). Стандарт настолько настоятельно рекомендует всегда начинать пользовательский литерал с подчерка, что большинство компиляторов выдают предупреждение, если программист этого не сделал. Предупреждение выглядит вот так:
warning: literal operator suffixes not preceded by '_' are reserved for future standardization
Ну, и наконец, открой всё-таки стандарт ISO/IEC 14882:2017 и посмотри раздел 5.13.8 "User-defined literals" (стр. 37-38). Там много примеров пользовательских литералов, но найди хоть один, чтобы не с подчерка начинался!
То место на которое ссылаются по твоей ссылке я конечно знаю, но оно не про литералы. Именно это разночтение я и имел в виду, когда писал тебе "В одних местах тон такой, а в других - эдакий". С литералами - всё наоборот - без подчерков они зарезервированы! Мне не хотелось сажать тебя в лужу, я думал ты сам в этом разберёшься, но, похоже, гордыня и уверенность в собственной непогрешимости не позволили тебе этого сделать.
Так что, парень, не спорь о том, чего не знаешь, тем более со специалистами.
Надеюсь, недоразумение исчерпано?
Нет ориентироваться как раз нужно в первую очередь на стандарт языка.
А чего ж Вы сами с упорством, достойным лучшего применения, в целой пачке постов настаивали, что я не прав, следуя его (стандарта) рекомендациям? ![]()
Мечту настоящего ардуинщика демонстрирует Boston Dynamics
Да, ладно!
Настоящий ардуинщик - это тот кто умеет свет у себя в сортире через эти ваши интернеты включать ![]()
в последних усовершенствованиях С/С++ (С11,С17) можно объявлять локальные массивы переменных с параметризированной длиной
Вы путаете, в стандарте такого нет, там требуется константное выражение (ISO/IEC 14882:2017, п. 11.3.4, стр. 220). Возможность иметь переменную - самодеятельность (расширение) GCC.
для различных архитектур
Не хотите нарваться - пользуйте только то, что есть в стандарте. Но вообще, здесь форум про ардуино и обсуждать другие архитектуры как-то странно.
Заводишь переменную "maximal" и сначала делаешь её очень маленькой (например, нулём). В течение нужного времени вводишь значения, каждое сравниваешь с maximal. Если больше, то присваиваешь его переменной maximal. По истечению любого времени (в т.ч. и 5 сек.) в переменной maximal всегда находится максимальное значение, которое мелькнуло за это время.
По стандарту, должно быть константное выражение
Да. А если говорить конкретно про Ардуино (тут же специализированный форум), то там используется GCC, а у него есть расширение, которое вообще позволяет динамические массивы (т.е. даже константа времени компиляции необязательна). Например, вполне себе правильный код
#include <Printing.h>
unsigned getSum(int nSize) {
unsigned arr[nSize];
for (int i = 0; i < nSize; i++) arr[i] = analogRead(1);
for (int i = 1; i < nSize; i++) arr[0] += arr[i];
return arr[0];
}
void setup(void) {
Serial.begin(115200);
Serial << "Sum: " << getSum(5) << "\n";
}
void loop(void) {
}В размерности массива должен быть литерал а не константа.
Что, в языке изменения вышли? Вроде, никогда такого требования не было, и в последнем стандарте тоже нет. Что-то поменялось в последние дни?
И в этом случае также, должно быть хотя бы предупреждение о выходе константы за диапазон.
Кому (и кто) так задолжал? Никому это не должно. Ощущение, что ты про какой-то другой язык говоришь.
Включите вывод сообщений компилятора в настройках и читайте, что он пишет.
Ничего он там не пишет - это совершенно нормальная операция в этом языке.
Странное поведение массива
Скорее? странное поведение Homo Faber
))
Драйвер-то хоть стоит? Правильный?
Что эквивалентно:
НИ грамма не эквивалентно.
Что там вообще делает операция запятая?
и как можно это исправить?
Если речь о нехватке памяти, то для начала прекратить использовать float и обходиться целыми числами.
Второго высшего, поправочка, я в консерватории ещё учусь, музыкант фаготист, одновременно двух местах.
Типичный случай так-называемого вранья. Не знаю как в консерватории, а здесь ты НЕ учишься. Ты не научился делать простейшие вещи, которые делает любой интересующийся школьник - чему же ты учишься? Ты просто пытаешься получить липовый диплом.
Лучше по существу помогите пожалуйста)
Уж извини, я не помогаю ленивым студентам-оболтусам. Не хочу. чтобы когда-то меня начал оперировать ухарь, получивший диплом так, как пытаешься его получить ты.
видос посмотрел но пока не совсем представляю как это буду реализовывать, вся сложность (для меня) кнопку прицепить вторую через boolean
Не знаю, у моего внука в 10 лет такой сложности не было. Хотя, если ни хрена не читать и не учить, а только "видосы" смотреть, то да ... успехов тебе в получении вышева абразавания!
там и дурак напишет
Дурак-то напишет. Вопрос не в этом, а в том: напишешь ли ты?
Задание примерно для пятикласника. Может, тебе, всё же, напрячь извилины (если есть) и самому сделать?
скромный и честный
Не только. Ещё и терпеливый. Все остальные с тобой давно уже попрощались. Пришла пора и мне. Если у тебя остались вопросы, то не трудись писать - не отвечу. Все ответы ты можешь легко найти вот здесь.
где Вы тут увидели "системные вещи" в пользовательском коде ?
Это именно системная вещь - часть системной библиотеки - https://github.com/elilitko/ArduinoStuff/tree/master/ConstTimers
Это все равно что я сейчас буду говорить ...
Я же Вас по хорошему просил прекратить. Вы хотите холивара? Не получится, я не холиварю, т.к. по жизни человек неконфликтный. Вместо этого я просто поступаю, как советовал Эдуард Овечкин, см. у него вот здесь как раз начиная с фразы "Я вообще человек неконфликтный ..."
Так именно поэтому при разработке системных вещей они и используются.
Давай прекратим, ладно. А то как-то попытки учить меня от человека только сегодня выложившего код с детской ошибкой немного смешат. Давай не будем.
Это не кому как это правило хорошего тона.
Да, нет, это как раз "кому как". В одних местах тон такой, а в других - эдакий.
Это кому как.
А если идет речь о минутах то возможно вывести в отдельную константу.
Если уж говорить о стайле, то секунды, минуты, часы и т.д. лучше определять одно через другое, а не всё в лоб.
Странная статья и код, так и не сказано откуда взято такое заключение.
Можно писать более человеко-читаемо:
typedef unsigned long ulong; const ulong period_1= 24*60*60*1000UL; // 24 часа
Можно.
Только лучше писать, заодно, и правильно.
Чтобы компилятор не сыпал предупреждениями и генерировал константу 86400000, как ожидается, а не 20864000, как он делает с этим кодом.
Впрочем, это, наверное, тоже придирка, как к гиверу. Со стайлом то ту всё нормально ![]()
Даже если точность +- минута, меня всё-равно устраивает
не, ну если плюс-минус полвершка - нормально, то можно и гайвером пользоваться, я не возражаю.
Причём тут библиотеки участвуют или нет? Ошибка в этом коде точно такая же, как и ошибка в коде той библиотеки. И также время подвирает. Просто человек так пишет.
Постоянное подвирание на 1 - http://arduino.ru/forum/programmirovanie/neskolko-interesnykh-i-poleznykh-bibliotek#comment-393723