Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Пополняй свой счет с помощью WebMoney
Комбинатор
15661
Комбинатор 2011.04.13 16:50  
Zhunko:

Какие обиды? :-)) Что не понравилось? Конкретнее...

Alsu уже дал ответ -- это оптимальный способ.

2 инта занимают 8 байт и не могут быть объединены в дабл без потерь приведенным способом. Большие значения будут биться.

А если надо строку и два дабла вернуть?

Vadim Zhunko
5216
Vadim Zhunko 2011.04.13 18:12  
TheXpert:

Alsu уже дал ответ -- это оптимальный способ.

2 инта занимают 8 байт и не могут быть объединены в дабл без потерь приведенным способом. Большие значения будут биться.

А если надо строку и два дабла вернуть?

Не претендовал на оптимальность. Просто ответил на вопрос автора темы.

Два дабла не выйдет в MQL4, но строку в 24 символа так можно. Но зачем? Тут строки и так возвращаются.

Андрей
1890
Андрей 2011.04.13 23:27  
TheXpert:
Вадим, вы иногда такую {...} несете...

Вадим возможно просто привык, что "вернуть" можно операцией "return".
А несколько значений через параметры- "можно передать".
Так что это чисто вопрос применения терминологии.
.
При внимательном прочтении функций WinAPI можно встретить
перед параметрами примерно такие комментарии:
/* in */
/* in, out */
/* out */
.
Т.е. бывают ситуации, когда параметры чисто "входные"-
бывают "модифицируемые", бывают чисто "выходные".
.
Ну, и если человек не может написать в явном виде
const int & param - или более актуальное в C++ типа
const std::wstring & str (для явного задания параметров как /* in */)
а вынужден писать неконстные выражения-
то это риск получить фиг знает что, потому что переменные в итоге
могут быть модифицированы неожиданно.
.
Так что функция с параметрами void f(int & a, int & b) -
при определенных условиях- это возврат из функции двух значений.
Который может закончится неожиданностью ;-).

Комбинатор
15661
Комбинатор 2011.04.14 09:38  
jartmailru:.

Так что функция с параметрами void f(int & a, int & b) -
при определенных условиях- это возврат из функции двух значений.
Который может закончится неожиданностью ;-).

Поэтому

1. я такие функции всегда оформляю в виде bool f(int & a, int & b), чтобы вызывающая сторона знала, что вызов прошел успешно

2. проверяю возвращаемые значения.

И какие же интересно неожиданности могут быть, если a и b предназначены именно для вывода? Придерживаемся MQL, т.е. никаких указателей, выделений памяти, етц.

Андрей
1890
Андрей 2011.04.14 11:49  

Ну как какие неожиданности. Когда я начинал программировать на си,
у меня при списывании с учебника программы "hello world" было 10 ошибок.
Причем я не мог найти их сам :-).

Vadim Zhunko
5216
Vadim Zhunko 2011.04.14 13:43  
Андрей (jartmailru) имеет ввиду, и как он меня научил, параметры можно модифицировать, как угодно, но это не является признаком комфортного программирования. Т.е. возможны ошибки, которые трудно прогнозировать и искать в крупных проектах. Я это давно усвоил. Модификация параметров в моих проектах крайне редка, а не модифицируемые параметры всегда объявлены константами.
Алексей Тарабанов
7222
Алексей Тарабанов 2011.04.14 22:07  

:)

Весна, Париж, раннее солнечное утро ...

Молодой человек, вышедший на утреннюю зарядку, отжимается на дорожке сквера.

Видавший всякое пожилой дворник: "Мсье, Вы не заметили, что Ваша дама уже ушла?".

Андрей
1890
Андрей 2011.04.14 23:32  
tara:
"Мсье, Вы не заметили, что Ваша дама уже ушла?".
А "вас тут не стояло"... (с)
Впрочем, вам я уже не буду объяснять, кто не дурак и почему.
Можете верить в собственную исключительность.
.
P.S.: последний раз, играя в бильярд по 10 отжиманий
на фол несколько перенапрягся.
Алексей Тарабанов
7222
Алексей Тарабанов 2011.04.15 00:10  
jartmailru:
А "вас тут не стояло"... (с)
Впрочем, вам я уже не буду объяснять, кто не дурак и почему.
Можете верить в собственную исключительность.
.
P.S.: последний раз, играя в бильярд по 10 отжиманий
на фол несколько перенапрягся.
Не надо так близко воспринимать мною сказанное,- я редко играю на бильярде и вовсе не играю в него, тем более - на отжимания. Меня тут, действительно, "не стояло". Могу.
/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий