Работа с аргументами функции
- Войдите на сайт для отправки комментариев
Пт, 26/05/2017 - 23:11
Добрый день!
Имеется код:
byte getByteFromLong(unsigned long var, byte n) { byte out; unsigned long mask; mask=long(0xFF)<<(8*(n-1)); var=var&mask; var=var>>(8*(n-1)); out=var; return out; }
Вызывается функция с аргументами-значениями: никаких указателей - только значения.
Это функция, выделяющая байт номер "n" из значения "var". Я вижу не лучший стиль программирования в том, что изменяется аргумент функции.
Профессионалы, подскажите пожалуйста, существует ли возможность измения в памяти Arduino переменной tmp, при вызовах getByteFromLong(tmp, 3) или компилятор защитит меня от этого нехорошего эффекта?
Защитит
Проще
проверка
DetSimen,
Но сам код, конечно, намного более прямой, чем в исходном сообщении.
Я не силен в Си, но попытался бы сделать что-то вроде:
andriano, спасибо, что поправил.