Неявное преобразование типов данных

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8031
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Неявное преобразование типов данных

Сообщение Игорь Столяров »

Привет всем !

Что-то я опять заплутал в трех соснах ... :( Может жара ... ;)
Есть процедура (не моя)

Код: Выделить всё

  Map
    Proc1(*?)   ! WinAPI
  end

! Вызываем
  
MyStr String(255)
   Code
   Proc1(MyStr)
   Message(MyStr) 
1. Пользовался этим кодом несколько лет и только сейчас, когда возникли проблемы,
с ужасом обнаружил что это как-то проходило компиляцию ... Почему ?

2. Непонятно, но получается что в Proc1 попадал адрес MyStr и в него вполне успешно записывалось значение.
Разве при передаче строки в процедуру с прототипом адреса происходит преобразование типов ?
Насколько я понимаю, правильный вызов должен быть Proc1(ADDRESS(MyStr)) ?

3. В какой-то момент это неявное преобразование типов перестало работать. Но в одно конкретной программе.
Точно такой же код в других программах работает ... Ничего не пойму, с чем это связано. :( Сборка на C6.3 9059

Кто-нибудь может ответить на любой из этих трех вопросов ?
Make Clarion Great Again ! 😎
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3289
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Re: Неявное преобразование типов данных

Сообщение Дед Пахом »

точно жара... приведённый код абсолютно легальный, Proc1 получает параметром ссылку на ANY, преобразование STRING->ANY>STRING, никаких адресов и т.п.

"В какой-то момент это неявное преобразование типов перестало работать" (прим.: а явного преобразования в Clarion и нет, только неявное) ищи в другом месте, тем более что в других местах работает.
С уважением, ДП
Ответить