Что означает: (float&)

FAI4
Offline
Зарегистрирован: 23.09.2016

Как перевести на "человеческий" (чтобы понять) такую строчку из кода:

float &num = (float&)raw;

В справочнике по языку нет ответа на такой вид записи

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Это означает "ссылка на переменную типа float". Но ведь сейчас последуют вопросы типа "что такое ссылка?", "чем она отличается от указателя?" и т.п. Давайте, Вы прочитаете описание языка, там всё написано.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

А поймете. Потому что надо потом разжевывать термины .

 Объявить ссылку на флоат с именем num и присвоить ей значение премеменой raw , приведеное к ссылке флоат.

О как если не ошибся в формулировках. http://document.saraff.ru/page.php?pg=30

Logik
Offline
Зарегистрирован: 05.08.2014

Это заклинание привязывает к переменной raw новое имя num через которое можна делать с raw все не прибегая к истиному имени и не зная его. Может так понятней будет. 

FAI4
Offline
Зарегистрирован: 23.09.2016

Вот здесь в справочнике я ничего о "ссылке на переменную" не нашел
http://arduino.ru/Reference

Этот справочник не полный?

Кто виноват (что не полный)?

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

FAI4 пишет:

Этот справочник не полный?

Кто виноват (что не полный)?

Ну что делать. :) В даун Си ссылки не вошли. Нечего новичкам забивать голову. delay() знают. Включить выключить светодиод могут. Заказать и купить Ардуину могут. Остальное лишнее.

FAI4
Offline
Зарегистрирован: 23.09.2016

ЕвгенийП пишет:

Это означает "ссылка на переменную типа float". Но ведь сейчас последуют вопросы типа "что такое ссылка?", "чем она отличается от указателя?" и т.п. Давайте, Вы прочитаете описание языка, там всё написано.

Спасибо за ссылку.

Будем читать...

FAI4
Offline
Зарегистрирован: 23.09.2016

Скетчи "переваривают" полную версию С++ (без ограничений) - ?

FAI4
Offline
Зарегистрирован: 23.09.2016

float &num = 

Это сылка на переменную num

 

(float&)raw;

а зачем здесь (float&) в скобках ?

 

почему нельзя было записать так?:

float &num = float &raw;

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Да. С учетом того, что IDE, в попытках облегчить жизнь новичкам, иногда оказывает "медвежью услугу" при предварительной обработки "скетча", превращая его в обычную программу на С. Пока можно не забивать себе этим голову.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

FAI4 пишет:

float &num = 

Это сылка на переменную num

 

(float&)raw;

а зачем здесь (float&) в скобках ?

 

почему нельзя было записать так?:

float &num = float &raw;

Это т.н. "преобразование типа". тип переменной raw преобразуется к "ссылка на флоат". Скорее всего начальный тип у raw был просто ссылка, на байт, например.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

FAI4 пишет:

float &num = 

Это сылка на переменную num

 

(float&)raw;

а зачем здесь (float&) в скобках ?

 

почему нельзя было записать так?:

float &num = float &raw;

Так, здесь идёт непереводимая игра слов ...

Вам дали ссылку на книгу? 

Так читайте!

Какого хрена Вы требуете, чтобы Вам её тут пересказывали?

FAI4
Offline
Зарегистрирован: 23.09.2016

читаем...

... но для того форум и существует чтобы дать быстрый краткий ответ

Иногда этого вполне достаточно.

Если нет - тогда пусть читает.

 

 

Иначе зачем форум?
(чтобы "сведущие" тешили свое самолюбие за счет "несведущих"?)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

FAI4 пишет:

... но для того форум и существует чтобы дать быстрый краткий ответ

Вы всерьёз думаете, что форум существует для того, чтобы давать ответы на Ваши вопросы, которые есть в любом "букваре"? Боюсь, что Вы ошибаетесь, если считаете, что земля вращается только для того, чтобы Вы могли отличить, когда время выпить, а когда опохмелиться.

FAI4 пишет:

Иначе зачем форум?

Форум для общения по интересам. Для того, чтобы люди с общими интересами могли общаться о том, что им интересно. Отвечать же на банальные вопросы и пересказывать учебники не интересно никому.

Подумайте об этом.

 

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

FAI4 пишет:

Вот здесь в справочнике я ничего о "ссылке на переменную" не нашел
http://arduino.ru/Reference

Этот справочник не полный?

Кто виноват (что не полный)?

Вы привели справочник по Ардуино.

А ответ на Ваш вопрос содержится в справочнике по языку программирования.

Это разные вещи. Никто ведь не требует, чтобы в инструкции к автомобилю содержались ПДД.

Так что Виноваты - Вы. Виноваоы тем, что задаете вопрос в неприфильном форуме.

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

FAI4 пишет:

Кто виноват (что не полный)?

ну, я виноват. и, что дальше?

FAI4
Offline
Зарегистрирован: 23.09.2016

ЕвгенийП пишет:
Форум для общения по интересам. Для того, чтобы люди с общими интересами могли общаться о том, что им интересно.

- может быть вы попутали с социальным сетями (для блондинок).

Это же специализированный форум на соответствующем ресурсе

(посмотрите адрес форума)

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

FAI4 пишет:

Это же специализированный форум на соответствующем ресурсе

Совершенно верно. И служит он для общения тех, кому интересно что-то делать на этой платформе. А Вы думали, что его создали, чтобы на Ваши вопросы отвечать и сидели годами ждали, когда же придёте и зададите их?

И вообзе, прекратите. Вы спросил "что это" - Вам ответили и сказали где почитать подробнее. Что Вам ещё нужно? Скажите спасибо и читайте, или не читайте - дело Ваше.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

FAI4 пишет:

... но для того форум и существует чтобы дать быстрый краткий ответ

Я ох...еваю, дорогая редакция!

То есть Вы всерьез полагаете, что Вам кто-то ДОЛЖЕН дать "быстрый и краткий ответ"????

Стесняюсь поинтересоваться, но откуда такая категоричная модальность?

Обычно некто должен, если ему заплатили (оставим в стороне всякие сопли про "моральный долг" - это сюда не относимо).

Вы платили? До меня опять-таки ни копейки не дошло! Одно жульё вокруг! Караул!

=======================

К тому же:

1. ответ вам  дали. даже не только ссылку на литературу.

2. воспользуйтесь своим советом, прочтите название форума. Ваш вопрос вообще никаким боком к Ардуино не относился.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

FAI4 пишет:

float &num = 

Это сылка на переменную num

Нет. Сама num - это ссылка на ...  Можно сказать, это псевдоним другой переменной. 

FAI4 пишет:

(float&)raw;

а зачем здесь (float&) в скобках ?

это стандартное для С приведение одного типа к другому.  Мы не знаем какого типа переменная raw, но если бы она была float, можно было бы написать float &num = raw;

FAI4 пишет:

почему нельзя было записать так?:

float &num = float &raw;

см.вышы.

FAI4
Offline
Зарегистрирован: 23.09.2016

DetSimen - спасибо за пояснение

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016
#include <EEPROM.h>
byte raw[4];
float &num = (float&)raw;
// Вот вам надо записать в EEPROM переменую float
num = /*float переменная*/;
EEPROM.write(0, raw[0]);
EEPROM.write(1, raw[1]);
EEPROM.write(2, raw[2]);
EEPROM.write(3, raw[3]);