изменение аргумента функции
- Войдите на сайт для отправки комментариев
Пнд, 20/08/2018 - 20:11
можно ли изменять значение аргумента функции внутри функции?
void Func(unsigned char arg1) { arg1 = 0; }
изменится ли значение переменной, которую я передам в качестве аргумента или нет?
Можно. Изменится. Может вкратце поясните какая задача?
Можно положить новое значение по адресу, который вы передадите в качестве аргумента. См. "передача аргумента по ссылке".
В вашем случае значение изменится на время жизни функции, а точнее - будет заведена еще одна локальная переменная, в которую откопируется значение передаваемой. См. "передача аргумента по значению".
изменится ли значение переменной, которую я передам в качестве аргумента или нет?
При таком способе передачи аршумента - нет.
Подробнее - см ответ sadman41
собираюсь сделать софтовый UART по прерыванию таймера. Так вот мне нужно считать данные только один раз, а остальное время передавать биты данных. В конце снова проверить, есть ли новые данные, если да, то отправить и их
можно ли изменять значение аргумента функции внутри функции?
изменится ли значение переменной, которую я передам в качестве аргумента или нет?
Можно. Варианта два: передача по ссылке, или по указателю. В том и другом случае - параметры должны быть неконстантными, т.е. разрешать изменение:
Вызов этого добра:
Ну можно и так #190
Ну можно и так #190
А это каким боком к вопросу ТС?
И из это следует, что ему надо валить ссылки, инкапсуляцию, полиморфизм и вообще всё, о чём когда-то слышали?
ЕвгенийП, что ж вы ко мне цепляетесь. Вас что никто не посылает. А пойти видно вам куда-то хочется. Человеку я просто подал пас и все. Поймает или пропустит это зависит от его головы. Вас это коробит что-ли.
Ваш пас про возвращение ссылок, на мой взгляд, никакого отношения к его вопросу не имеет. Ну, это на мой взгляд, возможно, я ощшибаюсь. Потому я и попросил Вас объяснить Вашу мысль. Вы вместо того, чтобы объяснить, начинаете намекать на посылание. У Вас что-то не в порядке? Вы чем-то сильно озабочены?
Конечно озабочен. Вы все время требуете что бы я Вам вместо ТС в его его теме разжевывал свою мысль. Если вам надо что то разжевать , то откройте свою тему и ждите, что бы Вам что-то кто-то расжевывал, если зубы у вас все выпали.
Я правильно понял, что вопросы Вам лучше не задавать - ничего кроме хамства в ответ не будет? Так? Если так, то обязуюсь юольше этого не делать (в смысле вопросы не задавать, от удовольствия иногда прокомментировать Ваши класссы я кончено же не отказываюсь - но без вопросов :)
Ваши класссы кончено
Согласен, Евгений - там кончено всё :)
эта функция будет крутиться в прерывании таймера
semaawp, попробую я вам дать свое объянение, а потом другие дадут свое. Вы хотите организовать механизм передачи байта с помощью таймера. Но тогда у Вас должно бы не одна функция а две. - 1- это передать байт. а 2-я это обработчик таймера с передачей, которая и решает что надо передавать бит если есть что-то передавать или нет. Ей не надо данные. Для ее работы нужны внешние переменные . флаг передавать или нет, байт данных и сколько уже передано.