Почему скобки стоят не так?
- Войдите на сайт для отправки комментариев
Пт, 28/12/2018 - 03:57
Доброго всем времени суток!
Разбираюсь с выводом на дисплей дополнительных символов, и вот обратил внимание, что строки их вывода в примере из готовой библиотеки почему-то выглядят по разному!
Посмотрите на то, как стоят скобки в строчках 3 и 5!
// Print a message to the lcd. lcd.print("I "); lcd.write(byte(0)); // when calling lcd.write() '0' must be cast as a byte lcd.print(" Arduino! "); lcd.write((byte)1);
В третей строке в скобках число "0", то есть
lcd.write(byte(0));
а в пятой строке слово "byte"
lcd.write((byte)1);
Почему? Объясните пожалуйста, кто знает!
Это, так называемое, приведение типов. Говорит компилятору какого типа выражение должно использоваться. Если просто написать 0, то компилятор, по умолчанию, считает его за int. А для этой функции нужен byte. Вот мы явно компилятору тут и указываем считать 0 byte a не int.
В строках 3 и 5 просто используются разные варианты записи приведения. В первом случае так называемое functional notation а во втором c-like cast notation. С like нотация считается устаревшей и ей рекомендуют не пользоваться. Хотя результат в обоих случаях один и тот же.
а я всю жизнь писал (byte)(0).
а теперь аказываеца надо писать static_cast<byte>(0)
Большое спасибо за детальный ответ! Кстати в том же скетче (примере) есть и строки такого типа :
В них приведение типов не выполняется вообще? А если выполняется, то где оно прописано (в каком-то месте библиотеки)? Я посмотрел в заголовочном файле LiquidCrystal.h есть такая строка:
size_t тип данных? и почему перед ним стоит "virtual"?
тебе весь учебник пересказывать, или сам чонить почитаешь? Или грамоте не обучен?
Большое спасибо за детальный ответ! Кстати в том же скетче (примере) есть и строки такого типа :
В них приведение типов не выполняется вообще? А если выполняется, то где оно прописано (в каком-то месте библиотеки)? Я посмотрел в заголовочном файле LiquidCrystal.h есть такая строка:
size_t тип данных? и почему перед ним стоит "virtual"?
virtual это ключевое слово. Что означает уже не помню, читайте учебники. size_t тоже какой-то тип данных, ищите по цеопочке включенных в проект инклюдов описание этого типа, сам я не интересовался.
тебе весь учебник пересказывать, или сам чонить почитаешь? Или грамоте не обучен?
тебе весь учебник пересказывать, или сам чонить почитаешь? Или грамоте не обучен?
Вот если бы это было на ютубе у Гивера...
Ой респект за видео!!
Вот если бы это было на ютубе у Гивера...
Будешь смеяться: тут надысь один допытывал, нарисуй, пж, рисунок соединений как у Гайвера, чтобы с картиночками плат и модулей, а то, мол, непонятно. Говорю - друже, вон смотри, лежит рисунок принципиальной схемы, там пины ардуино в кружочках указаны, бери по схеме, и тыкай: от кнопочки к пину ардуино, который в кружочке - что может быть проще?. Не, говорит, нихрена не понятно. Пару дней клинья подбивал, чтобы я ему художником поработал. Конечно, за спасибо.
Так что в каждой шутке, как известно...