FreeBasic
Главная
Вход
Регистрация
Воскресенье, 03.03.2024, 14:25Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Freebasic » Вопросы по языку FreeBasic » ByRef (Передача в Sub)
ByRef
sashasoldДата: Среда, 05.04.2023, 18:46 | Сообщение # 1
Лейтенант
Группа: Пользователи
Сообщений: 41
Репутация: 0
Статус: Offline
Такой вопрос. Если создаю Sub( a as Double, ...) то a принимает любве типы числовые типы byte, short, .. double.
Если же создал с воможностью изменения переменной Sub(byref a as Double, ...) то принимает только double типы, единственное что можно прописывать ввод через Cdbl. Вопрос, нельзя ли слплать прием любого типа числа, или конвертацию веутри подпрограммы, а то уж не удобно как то
 
haavДата: Среда, 05.04.2023, 21:02 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 1360
Репутация: 49
Статус: Offline
Sub(byref a as Double, ...)

Функция или процедура ждет тип DOUBLE , чтобы записать 8 байт в переменную , а ты передаешь туда переменную например BYTE , для которой выделена память в 1 байт. Это правильно?
Да наверное компиль это разрулит и отсечет ненужные данные , если ты приведешь тип. Но в любом случае , правильно сделали , что компиль показывает ошибку.
Хочешь посылать любые данные , посылай через указатель и приводи к любому типу прямо в процедуре , если так хочется.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
sashasoldДата: Суббота, 08.04.2023, 21:49 | Сообщение # 3
Лейтенант
Группа: Пользователи
Сообщений: 41
Репутация: 0
Статус: Offline
А как потом в процедуре распознать на какой длины переменной ссылка?) Byte, или double например? Ну да ладно, очеоь не люблю эти ссылки. С WString мороки хватает.
Придется тогда макрос+overload попробовать, для всеядности числовых типов
 
zamabuvaraeuДата: Воскресенье, 09.04.2023, 13:04 | Сообщение # 4
Подполковник
Группа: Друзья
Сообщений: 147
Репутация: 4
Статус: Offline

Цитата
А как потом в процедуре распознать на какой длины переменной ссылка?) Byte, или double например?
Передавайте размер в отдельной переменной.
 
Форум » Freebasic » Вопросы по языку FreeBasic » ByRef (Передача в Sub)
  • Страница 1 из 1
  • 1
Поиск: