|
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
|
||||||
Нужен совет по созданию функции16.09.2016, 15:18. Показов 842. Ответов 6
Метки нет (Все метки)
Приветствую всех. Занимаюсь разработкой класса для работы с прибором на основе его протокола обмена. Прибор при получении запроса дает ответ. Запросы бывают на запись и чтение данных.
Прототип функции на запись данных примерно такой: int Write(int Data);. То есть, функция получает данные Data, которые необходимо записать и возвращает ответ. По ответу определяется, записал прибор данные или же возникла какая-то ошибка.А вот с функцией на чтение данных не все так просто. При чтении прибор может вернуть запрашиваемые данные, а может вернуть ошибку чтения. Поэтому прототип функции чтения нельзя сделать таким int Read();, так как будет не понятно что вернул прибор: запрашиваемые данные или ошибку.Был вариант сделать прототип так: int Read(&Data);. То есть, функция возвращает признак успешности чтения, а сами данные записывает по ссылке Data. Однако вспоминается замечание уважаемого volvo о том, что не есть хорошо, когда функция что-то возвращает через свои параметры. Поэтому я в проектируемом классе создал общедоступную переменную Error, которая предназначена для фиксации ошибок.
0
|
||||||
| 16.09.2016, 15:18 | |
|
Ответы с готовыми решениями:
6
Нужен совет по созданию своего типа данных Нужен совет от профессионалов по созданию БД Нужен совет по созданию БД в Delphi |
|
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
|
||||||||||||||||||||||
| 16.09.2016, 18:32 | ||||||||||||||||||||||
|
Просто правилом хорошего тона считается выходные параметры маркировать в виде указателей, а не в виде ссылок
1) функция возвращает результат выполнения в виде некой переменной и пользователь решает, что дальше делать (опять в качестве примера то же WinApi)
1
|
||||||||||||||||||||||
|
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
|
||
| 17.09.2016, 13:20 [ТС] | ||
|
0
|
||
|
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
|
||||||||||||
| 19.09.2016, 09:30 | ||||||||||||
|
1) int a меняется по указателю
0
|
||||||||||||
|
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
|
|||||||||||
| 02.02.2017, 21:00 [ТС] | |||||||||||
|
Снова возникли сомнения... Сейчас, пока написано не много функций, решил окончательно определиться, чтобы потом не лопатить код.
"Рабочие" функции моего класса имеют один примерно такой "вид":
Error, которая может быть либо 0 (функция выполнила задачу успешно), либо содержать код ошибки.И вот тут возникает две идеи. Первая состоит в том, чтобы функции возвращали значение переменной Error. Вторая, чтобы функции записи ничего не возвращали, а функции чтения возвращали то, что они должны прочитать.
0
|
|||||||||||
|
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
|
||
| 03.02.2017, 22:58 [ТС] | ||
![]() ![]()
0
|
||
|
Супер-модератор
|
|||||||
| 03.02.2017, 23:23 | |||||||
1
|
|||||||
| 03.02.2017, 23:23 | |
|
Помогаю со студенческими работами здесь
7
Нужен совет по созданию программы Нужен совет по созданию чата Нужен совет по созданию игры Нужен совет по созданию сети Нужен совет по созданию высокопроизводительной БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|