реклама на сайте
подробности

 
 
> возврат ошибки функцией, как выполнить
tazik
сообщение Jun 19 2009, 13:38
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 195
Регистрация: 13-05-07
Из: Норильск
Пользователь №: 27 691



К примеру, есть функция чтения каких-то данных по какому-то адресу (чтение ИС памяти)

uint8_t MemReadByte(uint32_t Addres)

Внутри функции существует контроль ошибки чтения (по таймауту). Как передать код ошибки из функции "наружу"?
Ведь возвращаемые значения могут быть от 0х00 до 0хFF и для кода ошибки места не остается.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Jun 19 2009, 13:48
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Я обычно использую такой вид функций
Код
uint8_t foo(uint8_t cmd, void *arg)

т.е. в параметрах функции задается код команды и указатель на список аргументов. Список аргументов может состоять из одной переменной, массива переменных или структуры. Возвращает функция код ошибки выполнения команды. А если нужно возвращать какие-то данные, то они опять с помощью указателя на переменную, массив или структуру данных возвращаются. Указатель совсем не обязательно типа void. Тип указателя может быть вполне определенным. Такой способ передачи параметров более универсальный и схож с тем, что использует сам компилятор (IAR в моем случае).
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 07:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01339 секунд с 7
ELECTRONIX ©2004-2016