мистика! не меняется переменная в функции!
- Войдите на сайт для отправки комментариев
Чт, 05/07/2018 - 20:15
Есть переменная, которую я объявляю в глобале, сразу после строк #define вот так uint8_t val=0, прототип функции делаю так foo (uint8_t &val), в нутри функции делаю так: if(что то там){val=666;}
почему то после таких трюков переменная val не меняет значения оставаясь нулем проверял до и после вызова функции в loop
*val=666;
Ошибка в строке №32 кода - сами-то посмотрите!
так не компилируется вообще!
Вы бы определились. Либо
не компилируется вообще!
либо
не меняет значения оставаясь нулем проверял до и после вызова функции в loop
А то, когда и то, и другое вместе - это шизофренией попахивает :)
вы по делу будете?
я вообщ сказал sadman41
Всё, что я Вам пмсал было по делу.
Особенно про номер строчки.
Если Вы не поняли, то объясняю для альтернативно одарённых - пока Вы не приведёте свой код, никто не сможет сказать что там у Вас творится, т.к. одному Богу известо что вы там раписали. Так понятнее?
Я приведу свой код лишь для того, чтобы вы поняли, что исчерпавающая информация была приведена мной в первом посте!
Посмотри-ка какая цаца - у всех компилируется, а у него нет.
нахрена это
вообще передовать в функцию ?
SadiQ228 - вам стоит почитать, чем отличается запись CardType от &CardType и от *CardType
нахрена это
вообще передовать в функцию ?
ну, когда там структура или массив - это оправдано. Но тут один байт.... нафига?
Думаю, ТС это просто где-то списал, а сам вообще не различает эти закорючки :)
Посмотри-ка какая цаца - у всех компилируется, а у него нет.
Как он может компилироваться, если не responseR объявлен?
Другое дело, что, похоже, очередной суперспец появился - он лучше нас знает нужен код или где там "исчерпывающая информация".
Ребята указатели и ссылки я различаю, передаю по ссылке чтобы менялось значение!!!!
может из кода че и вырезал, но суть то вам ясна? проблема не решена!
Как он может компилироваться, если не responseR объявлен?
Этого знать не могу, я только за звездочки отвечаю.
за какие вы звездочки? за указатели? может тогда есть предположения? я могу передать в функцию int *val а в функции сделать *(val) =2; но всеравно не меняется
ну, когда там структура или массив - это оправдано. Но тут один байт.... нафига?
Ну... я так делаю иногда, когда функции нужно вернуть флаг удачно/неудачно, а если удачно, то еще и поменять значение в переменной. Непрозрачно, да, но быстро и функционально.
ПЕРЕМЕННУЮ ПЕРЕДАЮ ПОТОМУ ЧТО ПРОЕКТ РАЗБИТ НА МНОГО ФАЙЛОВ, это флаг символизирующий для меня кое что!
может из кода че и вырезал, но суть то вам ясна? проблема не решена!
Или Вы даёте полный код в котором Вы печатаете переменную и видно, что она не меняется, или решаете свою проблему сами. Мы догадываться должны, что у Вас там написано? Причём код даёте котроткий - не надо 100500 строк - выделите проблему, продемонстрируйте её и выкладывайте код.
тоесть по моему не полному коду, понимание моей проблемы к вам не пришло?
какая прелесть! Спасибо пацаны, а то чот депресняк накатывать стал, развеяли! ;) ;) ;)
Ребята указатели и ссылки я различаю, передаю по ссылке чтобы менялось значение!!!!
Различаете, говорите... тогда напишите нам вызов вот такой функции:
тоесть по моему не полному коду, понимание моей проблемы к вам не пришло?
В силу нашей общеизвестной крайней тупости - нет, не пришло.
Опять же, один нехороший человек запретил нам пользоваться хрустальными шарами.
И как жить-то?
Ребята указатели и ссылки я различаю, передаю по ссылке чтобы менялось значение!!!!
да нифига ты не различаешь. Начать с того. что CardType снаружи и внутри функции - это две разные переменные двух разных типов - одна типа байт, а другая указатель.
А во-вторых, глобальная CardType на то и глобальная, что ее не надо передавать в виде параметра - просто обращайся к ней внутри фкнкции.
а где имя то функции родной?
вот так вызову foo(
&ptrValue)
а где имя то функции родной?
вот так вызову foo(
&ptrValue)
Ну, вот, а говороил, что различает. Апять наврал? :((((
я оставив переменную глобальной, убрал из вызрова функции параметр, переменная всеравно не поменялась
я оставив переменную глобальной, убрал из вызрова функции параметр, переменная всеравно не поменялась
Ну, имя забыл, да - прокол.
Но тем не менее - раз вызов сумели оформить, то перенесите этот тестовый фрагмент в свежий скетч и посмотрите - меняется значение или нет.
Как выразилась советник Трампа Келлиэнн Конуэй (чем обессмертила своё имя): "Это не враньё, а альтернативные факты".
я оставив переменную глобальной, убрал из вызрова функции параметр, переменная всеравно не поменялась
видимо не выполнилось ни одно условие.
я оставив переменную глобальной, убрал из вызрова функции параметр, переменная всеравно не поменялась
так может она и не должна?
я оставив переменную глобальной, убрал из вызрова функции параметр, переменная всеравно не поменялась
А кода мы так и не увидим? Ты пришёл нам квестовые задания давать? Да?
Братуха да я и так и сяк , всяко уже делал, и возвращал из функции присваивая, ни в какую!1 мистика бро!
Переменные вообще никому не должны. А тем более -- глобальные.
>видимо не выполнилось ни одно условие. не может такого быть , но я перепроверю это
Братуха да я и так и сяк , всяко уже делал, и возвращал из функции присваивая, ни в какую!1 мистика бро!
А если я сделаю и заработает?
Братуха да я и так и сяк , всяко уже делал, и возвращал из функции присваивая, ни в какую!1 мистика бро!
начните с того, что назовите глобал и внутреннюю переменную функции разными именами. Я не знаю, каким чайником надо быть, чтобы дать им одно имя. Меня от вашего кода тошнит
Меня от вашего кода тошнит
Нежный какой! Диазепамчику примите!
Только веселуха пошла, а его уже тошнит!
xDriver бро ты дал дельную мысль! я по uint8_t мас сиву, шел int итератором!) аж смешно стало! спасибо всем кто откликнулся!
p.s да ошибка была в условии, переменная пишется)
Вот и скажи после этого, что в ардуине Си - честный...
А чо, никто не заметил, что в строке 27 оно передаёт в функцию 4 параметра, а функция описана - с тремя? Четвёртый параметр, который CardType - в жопу, он не нужен, ещё бы ему меняться.
Вот что бывает, когда по умолчанию вывод wanring в среде отключён.
Вот что бывает, когда по умолчанию вывод wanring в среде отключён.
Просто это типичный случай данной стратегии:
Вот что бывает, когда по умолчанию вывод wanring в среде отключён.
Так и С ж нечестный ни хрена. Как жить? :(((