Присвоение значений переменным без использования массива

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

sadman41 пишет:

Это не будет правильно работать в случае *ptrInt = &valFloat - когда на данные, что лежат по адресу четырехбайтного float начинаешь смотреть "через очки" двухбайтного int. Чтобы представить что-то другое, чего компилятор не прокастовал - мне придется у DetSemen отнять полстакана...

странно, по тексту фунции не было видно, что она возвращает не данные, а адрес:

Так работало:
float temp = rrr();
uint_16t a = temp;

А так нет:
uint_16t a =rrr();

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

ua6em пишет:

я поищу кусок кода, где неявное приведение типа не работало и я не понимал ЧТО ПРОИСХОДИТ...
Там правда был float приводимый к int

1. если знать стандарт языка, то всё, всегда работает.

2. А вот для тех случаев, когда всего не упомнишь, и есть хороший тон: всегда использовать явное преобразование. В Питоне (к примеру) это внесли как один из постулатов: "явное лучше неявного". ;))

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

ua6em пишет:

sadman41 пишет:

Это не будет правильно работать в случае *ptrInt = &valFloat - когда на данные, что лежат по адресу четырехбайтного float начинаешь смотреть "через очки" двухбайтного int. Чтобы представить что-то другое, чего компилятор не прокастовал - мне придется у DetSemen отнять полстакана...

странно, по тексту фунции не было видно, что она возвращает не данные, а адрес:

Так работало:
float temp = rrr();
uint_16t a = temp;

А так нет:
uint_16t a =rrr();

брехня

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

wdrakula пишет:

странно, по тексту фунции не было видно, что она возвращает не данные, а адрес:

Так работало:
float temp = rrr();
uint_16t a = temp;

А так нет:
uint_16t a =rrr();

брехня

я не в том возрасте сказки рассказывать, вообще темы бы не возникло, из пальца что ли высосал

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

wdrakula пишет:

ua6em пишет:

я поищу кусок кода, где неявное приведение типа не работало и я не понимал ЧТО ПРОИСХОДИТ...
Там правда был float приводимый к int

1. если знать стандарт языка, то всё, всегда работает.

2. А вот для тех случаев, когда всего не упомнишь, и есть хороший тон: всегда использовать явное преобразование. В Питоне (к примеру) это внесли как один из постулатов: "явное лучше неявного". ;))

Во, во, и пообщался и правильный синтаксис подсказали -

channels[channel - 1] = (unsigned int) ppm.latestValidChannelValue(channel, 0);

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

ua6em пишет:

я не в том возрасте сказки рассказывать, вообще темы бы не возникло, из пальца что ли высосал

Нужно сорвать папаху, с размаха воткнуть кинжал в столешницу и сказать: "Мамой клянусь!!!". ;))))))))))))

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

wdrakula пишет:

ua6em пишет:

я не в том возрасте сказки рассказывать, вообще темы бы не возникло, из пальца что ли высосал

Нужно сорвать папаху, с размаха воткнуть кинжал в столешницу и сказать: "Мамой клянусь!!!". ;))))))))))))

Лень искать фото где я с кинжалом )))

А вот ты пробовал компилировать OpenSSL тот, что под Гост 2012?

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

ua6em пишет:

andriano пишет:

ua6em, можете объяснить, зачем в Вашем коде строка 35?

Преобразование типа  long в int (беззнаковые)
Функция возвращает 32 битное значение, а для дальнейшей работы нам надо 16 битное беззнаковое, волшебства (без использования массива) видимо не получится, разбрасываться по 20 байт памяти как-то не комильфо )))

Какое преобразование? Какая функция?

Вы разместили код 

 

ua6em пишет:

sadman41 пишет:

Лично я уже третий раз читаю пост и не понимаю what the hell: "хотелось назначать переменную типа unsigned int и ей присваивать значение в цикле, вообще не используя считывание в массив".

на выходе должно быть это, но без костылей:

#include <PPMReader.h>
#include <InterruptHandler.h>
int interruptPin = 3;                                                  //  пин приемника
int channelAmount = 8;                                                 //  число каналов (max 8)
PPMReader ppm(interruptPin, channelAmount);

#define ch1   value[1]
#define ch2   value[2]
#define ch3   value[3]
#define ch4   value[4]
#define ch5   value[5]
#define ch6   value[6]
#define ch7   value[7]
#define ch8   value[8]
unsigned long value[9];
unsigned int Ch_1;
unsigned int Ch_2;
unsigned int Ch_3;
unsigned int Ch_4;
unsigned int Ch_5;
unsigned int Ch_6;
unsigned int Ch_7;
unsigned int Ch_8;

void setup(){Serial.begin(115200);}

void read_ppm(){
   for (int channel = 1; channel <= channelAmount; ++channel)           //  ВЫВОД ВСЕХ КАНАЛОВ В SERIAL
    {
     if(channel==3) {value[channel]  = ppm.rawChannelValue(channel);
     }else{                                                             //  FS настроен на стик газа CH3
     value[channel] = ppm.latestValidChannelValue(channel, 0);}
     Serial.println("ch" + String(channel) + " = " + String(value[channel-1]) + " ");
    }
    Ch_1=ch1; Ch_2=ch2; Ch_3=ch3; Ch_4=ch4; Ch_5=ch5; Ch_6=ch6; Ch_7=ch7; Ch_8=ch8; 
}

void loop()
{
    read_ppm();
    delay(500);
}

 

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

Если Вы считаете иначе, поясните, что именно, по Вашему мнению, делает строка 35.

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

ua6em пишет:

Меня больше интересует не сломает ли конструкция вида

  channels[channel - 1] = ppm.latestValidChannelValue(channel, 0);
 

данные в массиве инициализируемом как uint_16...

Ответ на этот вопрос очень сильно зависит от того, что именно Вы подразумеваете под термином "сломает".

Очевидно, что, записывая что-то неправильное в массив, можно что-то "сломать".

С другой стороны, если под "сломать" одразумевается, не испортится ли при этой операции содержимое ячеек памяти отличных от channels[channel-1], то - нет, не испортится.

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

ua6em пишет:

Так что запомнить 3.6 кб машинного кода это не так сложно...

Интересно, сэр понимает различие в терминах "написать" и "запомнить"?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

andriano пишет:

ua6em пишет:

Так что запомнить 3.6 кб машинного кода это не так сложно...

Интересно, сэр понимает различие в терминах "написать" и "запомнить"?

да, когда пишешь в кодах обязан помнить всё, АSM версии 1.27 у меня появился лет на 5-7 позже

ДА!  вопросы как бы исчерпаны

sadman41
Offline
Зарегистрирован: 19.10.2016

I'm shocked. Так долго твердить про экономию байт и подвесить в воздухе первый элемент массива... Да ещё придумывать мнемонику для одноразового использования. Зачем Вы людей мучаете задачей про бочку - мне непонятно. Или у Вас просто к ней ответ есть?

Я думаю, что начальник с такими требованиями должен прежде над собой поработать, чтобы получить право валить соискателей странными вопросами.

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

sadman41 пишет:

Я думаю, что начальник с такими требованиями должен прежде над собой поработать, чтобы получить право валить соискателей странными вопросами.

Я бы еще сказал, что вера в "волшебные катушки", для человека с высшим образованием, авторитета не добавляет. Так-то безобидно... кто-то ведь и в гомеопатию верит, но несколько настораживает. ;))

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

И про бочку все-таки интересно, что ты хочешь услышать? Решение я привел - оно некрасивое и зубодробительное. И другого - нет. Точного нет, оценочных - вагон и тележка. Или тебя устроит решение а-ля "синусоида" от какого-то дурака, уж не помню его ника?

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

ua6em пишет:

спросить уже нельзя )))

:))))))))))

Диалог на форуме:

- Мужики, а что за аббревиатура ПНХ?
- "Пошёл на йух"
- Блин, спросить уже нельзя :(

:-)))))))))))))

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016
Сынишка, узнавая значения неизвестных слов, подходит к папе: — Пап, а что такое геморрой? — Ты что, с программистами общался? 

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

sadman41 пишет:

I'm shocked. Так долго твердить про экономию байт и подвесить в воздухе первый элемент массива... Да ещё придумывать мнемонику для одноразового использования. Зачем Вы людей мучаете задачей про бочку - мне непонятно. Или у Вас просто к ней ответ есть?

Я думаю, что начальник с такими требованиями должен прежде над собой поработать, чтобы получить право валить соискателей странными вопросами.

Вы видели и с неподвешенным первым элементом массива )))
Это просто заготовка, на основе которой переделываю для внучек тележку на радиоуправлении...
А задача про бочку  - это определение гибкости ума для решения нестандартных задач,
на этом форуме её НИКТО не решил, ещё раз задача на знание геометрии 7 класса...
практически по мотивом известной задачи купца заданной им его сыну получившему высшее образование,
надеюсь помните )))
 

 

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

wdrakula пишет:

И про бочку все-таки интересно, что ты хочешь услышать? Решение я привел - оно некрасивое и зубодробительное. И другого - нет. Точного нет, оценочных - вагон и тележка. Или тебя устроит решение а-ля "синусоида" от какого-то дурака, уж не помню его ника?

Точное решение есть и ты его точно знаешь (судя о твоей эрудиции не можешь не знать) и оно иное, я даже направление мысли  задал, вспомни доказательство теоремы о площади круга от АВТОРА )))

sadman41
Offline
Зарегистрирован: 19.10.2016

А, ну я понял: релизить явно плохой код - не ошибка, а фича. Гибкость же ума нужна для бочек, но никак не для простейшей адресной арифметики. 

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

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

sadman41 пишет:

А, ну я понял: релизить явно плохой код - не ошибка, а фича. Гибкость же ума нужна для бочек, но никак не для простейшей адресной арифметики. 

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

а иного (ЧИТАЙ ХОРОШЕГО) тут и не предложили, я ж и просил помощи, коль от С далёк (все уши прожужжал, что хочу красивости)

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

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

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

wdrakula пишет:
я бросаю. меня этот бред задолбал. нет никаких иных решений. формула зависимости площади сегмента не изменится от любых измышлений. тебе и правда нужно над собой поработать. задача про купца была совсем другая, и прощали сегмента в решении не содержала. вероятно ты хотел выпендриться, но где-то что-то перепутал.

Еще раз - вспомни метод "падающей плоскости" ну, не разочаровывай меня...прими грамм 40 для остроты восприятия...
 

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

Формулируй то, что хочешь получить - правильно! Зависимость объема жидкости в лежащей на боку бочке от уровня в ней вот такая, какя есть с арксинусами и синусами. Если тебе нужен ответ на какой-то иной вопрос, то нужно его правильно задавать.

Ты пока спрашивал о зависимостит объема от уровня. Плоскости-шмосткости не изменят факта. В иной формулировке есть иные решения, в этой - только вот такое.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

wdrakula пишет:

Формулируй то, что хочешь получить - правильно! Зависимость объема жидкости в лежащей на боку бочке от уровня в ней вот такая, какя есть с арксинусами и синусами. Если тебе нужен ответ на какой-то иной вопрос, то нужно его правильно задавать.

Ты пока спрашивал о зависимостит объема от уровня. Плоскости-шмосткости не изменят факта. В иной формулировке есть иные решения, в этой - только вот такое.

Арксинус и аркосинус тоже строятся на первокирпичиках, где основа простые арифметические операции...
отбрось все свои глубокие знания, все проще и на поверхности )))
Зашоренность однако плата за огромные знания

 

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

я давно знаю, к чему ты ведёшь, но пытаюсь объяснить, почему это чушь
. Ты ставил задачу именно так. Поэтому нарисовать графически или при вычислении использовать длину дуги -- это НЕ решение. А решение это, блчть, только формула, которая не сокращается.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

wdrakula пишет:
я давно знаю, к чему ты ведёшь, но пытаюсь объяснить, почему это чушь . Ты ставил задачу именно так. Поэтому нарисовать графически или при вычислении использовать длину дуги -- это НЕ решение. А решение это, блчть, только формула, которая не сокращается.

да, формулы там простые, совсем простые, и длины дуги окружности в той фомуле нет )))

Напиши, если давно знаешь и это чушь... хочу посмотреть и послушать обоснование чуши

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

А мне как-то смешно, когда создатель (ну я надеюсь что это так) программы с тремя с половиной переменными рассказывает что ему ОЧЕНЬ ТРУДНО, что они начинаются с 0, а не с единицы. При этом память, занимаемая программой, не составляет и 10% от памяти ардуинки.

Напоминает анекдот, когда мужик приходит к доктору и жалуется, что у него левое яичко выше правого. На что доктор отвечает, что это нормально и у всех так. А мужик говорит: - Неаккуратненько как-то...

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

Та ладно Это как загадки из мапет шоу https://www.youtube.com/watch?v=5rxGsXhrfhY

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

mykaida пишет:

А мне как-то смешно, когда создатель (ну я надеюсь что это так) программы с тремя с половиной переменными рассказывает что ему ОЧЕНЬ ТРУДНО, что они начинаются с 0, а не с единицы. При этом память, занимаемая программой, не составляет и 10% от памяти ардуинки.

Напоминает анекдот, когда мужик приходит к доктору и жалуется, что у него левое яичко выше правого. На что доктор отвечает, что это нормально и у всех так. А мужик говорит: - Неаккуратненько как-то...

Оно конечно смешно, но на прямо поставленный вопрос - без использования массива - никто ответить не смог )))

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

ua6em пишет:

Оно конечно смешно, но на прямо поставленный вопрос - без использования массива - никто ответить не смог )))

Ну да, ну да. Просто на идиотские вопросы ответов не бывает. Но я Вам дам - напишите программу на ассемлере - там в принципе массивов не существует.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

mykaida пишет:

ua6em пишет:

Оно конечно смешно, но на прямо поставленный вопрос - без использования массива - никто ответить не смог )))

Ну да, ну да. Просто на идиотские вопросы ответов не бывает. Но я Вам дам - напишите программу на ассемлере - там в принципе массивов не существует.

Это не идиотский вопрос - это тлетворное влияние Этюдов Евгения Петровича, в частности про потоки )))

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Вам дали прекрасный совет в #4, Вы его проигнорировали. И не надо гнать на Евгения Петровича - он дает оптимальность, но кроме нее есть еще целесообразность и разумность. В данном случае, если Вам удобно работать с цифрами 1-8, а не 0-7, стоит попрать оптимальность и потерять один байт. Это не компьютер - это микроконтроллер и на ней работает только одна программа. Вот когда Вам не будет хватать памяти или скорости, вот тогда и поминайте пречистых Джобса и Гейтса.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Да, и кстати, если бы Вам надо было называть каналы не 1-8, а как-то в разбежку, типа 132, 812, 777, ..., то я бы посоветовал использовать #define и опять же массив. Лучше матрицы для перечислительных значений математика пока ничего не придумала.

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

ua6em пишет:

wdrakula пишет:
я давно знаю, к чему ты ведёшь, но пытаюсь объяснить, почему это чушь . Ты ставил задачу именно так. Поэтому нарисовать графически или при вычислении использовать длину дуги -- это НЕ решение. А решение это, блчть, только формула, которая не сокращается.

да, формулы там простые, совсем простые, и длины дуги окружности в той фомуле нет )))

Напиши, если давно знаешь и это чушь... хочу посмотреть и послушать обоснование чуши

Формула от уровня - только одна. Остальное либо на измерении длины дуги либо на графическом построении и и то не очень чистом. С такими уловками я знаю несколько решений, верил, что ты их имеешь ввиду.

РЕШЕНИЕ - вообще единственное, и я его привел. Эта формула не упрощается и не сокращается. Если ты думаешь, что есть иное - ты ошибаешь в силу невежества! В задаче четко было сказано - вычислить значения процента заполнения бочки через каждые 5мм уровня в ней, бочка известной высоты и диаметра лежит строго горизонтально, на боку. Бочка непрозрачна, поэтому единственное измерение   - уровень воды. Веревок и линеек нет, есть рейка для измерения уровня погружением.

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

wdrakula, предпологаю там последовательное сложение элементаных площадей 5мм на корень суммы квадрата радиуса бочки и квадрата разницы (радиуса и уровня) И так до середины бочки . Выше другая подобная формула. Но же говорил что это загадки подобные Мапет Шоу.

ПС: Вот таким же путем можно вычислить не только объем воды в бочке лежащей на боку, но и лежащей на боку когда верхний край еще и на некоторой высоте. :)

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

qwone пишет:

wdrakula, предпологаю там последовательное сложение элементаных площадей 5мм на корень суммы квадрата радиуса бочки и квадрата разницы (радиуса и уровня) И так до середины бочки . Выше другая подобная формула. Но же говорил что это загадки подобные Мапет Шоу.

ПС: Вот таким же путем можно вычислить не только объем воды в бочке лежащей на боку, но и лежащей на боку когда верхний край еще и на некоторой высоте. :)

не суммы а разницы ))) мыслите в верном направлении, но расчет должен быть более точным, 5 мм конечно грубовато берёте, неплоскостность на радиусе 2 метра (это типовой диаметр бочек) великовата, а вот на 1мм )))
Далее расчет ограничивается точностью применённого ПО и (ИЛИ) математического сопроцессора

PS Уж не у Перепелицы учились?
PPS собеседование зачётное, жаль работы нет, сам от безделья по форуму шастаю, но если одолеешь ГОСТ 2012 и напишешь конвертер, поговорим
 

 

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

ua6em, у меня было два семестра по этим вещам. Так что как решать интегралы и всякие системы линейных уравнения я знаю.Вот только с развитием компьютеров это стало немного не актуально.

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

блеать! ну и какое отношение этот лепет имеет к решению??? я невнятно писал, что точное решение одно?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

qwone пишет:

ua6em, у меня было два семестра по этим вещам. Так что как решать интегралы и всякие системы линейных уравнения я знаю.Вот только с развитием компьютеров это стало немного не актуально.

Тут всё таки LIM (пределы), я правда только идею помню, а частности ни-ни, в моей церковно-приходской оно было без надобности

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

wdrakula пишет:
блеать! ну и какое отношение этот лепет имеет к решению??? я невнятно писал, что точное решение одно?

аксинус точное решение? не смеши мои тапки, какая точность, где ты её там увидел?
Ты наверное никогда спутниковых тарелок диаметром более 3 метров не настраивал, там только миллиметры и никаких углов
 

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

Там вагон и целая тележка. Но просто не думаю что сюда на форум это еще тащить.
https://ru.wikipedia.org/wiki/Метод_Гаусса_(численное_интегрирование) 

Ну и так далее. Причем учили тогда под Корветы

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

ua6em пишет:

wdrakula пишет:
блеать! ну и какое отношение этот лепет имеет к решению??? я невнятно писал, что точное решение одно?

аксинус точное решение? не смеши мои тапки, какая точность, где ты её там увидел?
Ты наверное никогда спутниковых тарелок диаметром более 3 метров не настраивал, там только миллиметры и никаких углов
 

Ты разницу решений аналитических и численных в своем ПТУ проходил? В курсе, что задача "решить" и "решить численно" это две разные задачи? Так какого хера срал в мозг тут делая загадочное ебало?

Юлять! Пиздец! Пусть потом кто-то это чистит, но твоя дремучесть уже в край достала! Мотатель катушек, my ass!

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

не, не проходил, да и нам кузнецам сие было ни к чему, а вот диаграмму сплава железо-углерод - основательно, ну так кудыж без неё, отличать перлиты, мартенситы и аустениты от ледебуритов надо жеж

PS ну прими ты на грудь и будь добрей

sadman41
Offline
Зарегистрирован: 19.10.2016

ua6em пишет:

Оно конечно смешно, но на прямо поставленный вопрос - без использования массива - никто ответить не смог )))

Я вам отвечал. Вот Вы сами попробуйте сформулировать - на кой всра... понадобились мнемонические переменные и весь этот маскарад. Чтобы только не массив, не дайбох? Он что, в детстве Вас покусал? Девять раздельных long переменных вдруг стали экономней массива из девяти long элементов?

Вот ниже еще вариант. Только они же Вам не нужны. Потому что желаете, как в ассемблере, делая вид, что там всё было волшебней, несмотря на то, что mov 0x1f0, ax - это примерно value = func();

typedef union {
  uint16_t channels[9];
  struct {
    uint16_t No1;
    uint16_t No2;
    uint16_t No3;
    uint16_t No4;
    uint16_t No5;
    uint16_t No6;
    uint16_t No7;
    uint16_t No8;
    uint16_t No9;
  } channel;
} ppmChans_t;


void setup() {
  ppmChans_t ppmChans;
  Serial.begin(115200);

  for (byte channel = 1; channel <= (sizeof(ppmChans.channels) / sizeof(ppmChans.channels[0])); ++channel) {
    ppmChans.channels[channel - 1] = channel + 73; // = ppm.latestValidChannelValue(channel, 0);
    Serial.print("Channel #"); Serial.print(channel); Serial.print(" => "); Serial.println(ppmChans.channels[channel - 1]);
  }
  Serial.println("-------------");
  Serial.print("Channel #2 => "); Serial.println(ppmChans.channel.No2);
}

void loop() {}

 

b707
Онлайн
Зарегистрирован: 26.05.2017

из опыта этого форума у меня сложилось впечатление, что изучение ассемблера в молодости бесповоротно и навсегда меняет структуру головного мозга. Я ни в коем случае не хочу сказать, что такие люди хуже нас - они просто другие.

Интересно, если я пишу на Си 25-30 лет - мне уже безопасно начинать изучать ассемблер или подождать еще леет 10? :)

Шутка :)))

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

я бы не советовал. на всякий случай! ;)))

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

ua6em пишет:

channels[channel - 1] = (unsigned int) ppm.latestValidChannelValue(channel, 0);

Некошерно.  Нада так, по-научному:

channels[channel-1]=static_cast<unsigned int>(ppm.latestValidChannelValue(channel, 0));

 

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

DetSimen пишет:

ua6em пишет:

channels[channel - 1] = (unsigned int) ppm.latestValidChannelValue(channel, 0);

Некошерно.  Нада так, по-научному:

channels[channel-1]=static_cast<unsigned int>(ppm.latestValidChannelValue(channel, 0));

Теперь придется читать что такое означает сия конструкция - static_cast<unsigned int>...
Но когда вижу такое...в голове мысль...отсюда взять...сюда засунуть

...Лучшая практика по приведению типов: не делать этого. Потому что, если в программе потребовалось приведение типов, значит в этой программе с большой долей вероятности что-то неладно.(С) Алёна Сагалаева
 

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

Алена, она просто теоретик от лженауки, каторая С++ ни разу в руках не держала. Не слушай ее

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

DetSimen пишет:

Алена, она просто теоретик от лженауки, каторая С++ ни разу в руках не держала. Не слушай ее

Так практики, они того, с кривыми руками, открой на гитхабе OpenSSL ветку 1.1 и подивись, что они там намутили, а ещё луучше - исправь, что бы нам, далёким от С с компиляцией не мучится )))

PS мне оно ни к чему, вчера поправили для себя и скомпилировали, а всему огромному сообществу очень даже большая польза и от оного премногая благодарность будет
PPS с поддержкой GOST естественно, она там сейчас сбоку прилеплена

sadman41
Offline
Зарегистрирован: 19.10.2016

Так сделайте в своей программе красиво и не нужно будет типы приводить. Или поправьте библиотеку. Опенссл же зафиксили. Неизвестно от чего и как, правда, ежели про кастование только сейчас читать начали. Хотя, мне кажется кот с торшером уже где-то тут.