Программируем

Пожалуйста, зарегистрируйтесь или войдите под уже созданным логином. Вы получите полный доступ ко всем статьям форума.

Join the forum, it's quick and easy

Программируем

Пожалуйста, зарегистрируйтесь или войдите под уже созданным логином. Вы получите полный доступ ко всем статьям форума.

Программируем

Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.
Программируем

На нашем форуме программистов вы сможете найти софт для программирования и другие программы. На форуме обсуждаются многие языки программирования, задачи и их решения. Используются языки: C, Assembler, Pascal, Delphi, Flash и другие.

Последние темы

» Арена искусственных интеллектов Gridwars
результаты, переданные через Return EmptyСр Окт 12, 2016 2:43 am автор SeriousPasha

» требуется несколько JS разработчиков
результаты, переданные через Return EmptyПт Окт 07, 2016 10:19 pm автор mrktwn1

» Защита приложения от взлома
результаты, переданные через Return EmptyЧт Июн 18, 2015 10:28 pm автор stradi

» Ищите программиста или дизайнера?
результаты, переданные через Return EmptyПт Мар 27, 2015 6:25 am автор фриланс

» Создание и продвижение сайтов, их развитие.
результаты, переданные через Return EmptyСр Мар 25, 2015 12:40 am автор asdfghhgfdsa

» Исходники для студентов + скайп-консультации,помощь в написании программ
результаты, переданные через Return EmptyВт Окт 07, 2014 11:25 pm автор Horpion

» IT- технологии для развития бизнеса
результаты, переданные через Return EmptyПн Июн 23, 2014 6:11 pm автор dvos12

» Стенли Кубрик "С Широко закрытыми Глазами"
результаты, переданные через Return EmptyЧт Июн 12, 2014 2:01 am автор Vertuozzz

» Каталог популярных хостинг компаний
результаты, переданные через Return EmptyСб Май 10, 2014 7:18 pm автор naik

Самые активные пользователи

Aster (142)
результаты, переданные через Return Bar_leftрезультаты, переданные через Return Barрезультаты, переданные через Return Bar_right 
Exkalibur (89)
результаты, переданные через Return Bar_leftрезультаты, переданные через Return Barрезультаты, переданные через Return Bar_right 
Чебурашка (63)
результаты, переданные через Return Bar_leftрезультаты, переданные через Return Barрезультаты, переданные через Return Bar_right 
Administrator (34)
результаты, переданные через Return Bar_leftрезультаты, переданные через Return Barрезультаты, переданные через Return Bar_right 
ak95 (8)
результаты, переданные через Return Bar_leftрезультаты, переданные через Return Barрезультаты, переданные через Return Bar_right 
Пушкин (7)
результаты, переданные через Return Bar_leftрезультаты, переданные через Return Barрезультаты, переданные через Return Bar_right 
K4_ (7)
результаты, переданные через Return Bar_leftрезультаты, переданные через Return Barрезультаты, переданные через Return Bar_right 
LuDa (7)
результаты, переданные через Return Bar_leftрезультаты, переданные через Return Barрезультаты, переданные через Return Bar_right 
Goldcoding (6)
результаты, переданные через Return Bar_leftрезультаты, переданные через Return Barрезультаты, переданные через Return Bar_right 
Admin (6)
результаты, переданные через Return Bar_leftрезультаты, переданные через Return Barрезультаты, переданные через Return Bar_right 

Партнеры

результаты, переданные через Return Top100 Rambler's Top100

Участников: 4

    результаты, переданные через Return

    Exkalibur
    Exkalibur
    Почетный пользователь
    Почетный пользователь


    Сообщения : 89
    Очки : 144
    Репутация : 13
    Дата регистрации : 2010-02-28
    Возраст : 33
    Откуда : Красноярск

    результаты, переданные через Return Empty результаты, переданные через Return

    Сообщение автор Exkalibur Чт Мар 11, 2010 10:45 pm

    Через оператор return обычно передается сигнал об успешности функции, то есть обычно он выражается значениями 0-1 (true-false). Другие результаты при этом передаются через параметры. Если функция всегда завершается успешно, вычисленный результат можно передать через return. Можно совместить передачу сигнала и результата, если в диапазоне расчета есть значения, которые в программе мы не можем взять за результат.
    Например: функция формирует строку. Если функция формирует результат типа "да"-"нет", то тип функции bool, с возможными результатами true/false.
    Aster
    Aster
    Admin
    Admin


    Сообщения : 142
    Очки : 274
    Репутация : 11
    Дата регистрации : 2010-01-07

    результаты, переданные через Return Empty Re: результаты, переданные через Return

    Сообщение автор Aster Чт Мар 11, 2010 11:42 pm

    Большое спасибо за все ваши посты, наконец-то у нас появился человек, знающий C. Удачи и не останавливайтесь на достигнутом!
    Exkalibur
    Exkalibur
    Почетный пользователь
    Почетный пользователь


    Сообщения : 89
    Очки : 144
    Репутация : 13
    Дата регистрации : 2010-02-28
    Возраст : 33
    Откуда : Красноярск

    результаты, переданные через Return Empty Re: результаты, переданные через Return

    Сообщение автор Exkalibur Вс Мар 14, 2010 11:43 am

    будем стараться Smile)))
    avatar
    ValeryLaptev
    Новичек
    Новичек


    Сообщения : 5
    Очки : 5
    Репутация : 0
    Дата регистрации : 2010-01-10

    результаты, переданные через Return Empty Re: результаты, переданные через Return

    Сообщение автор ValeryLaptev Вс Май 16, 2010 1:07 pm

    Добавлю.
    Обычно функция, возвращающая значение типа bool, называется предикатом.
    Не обязательно значение true-false является индикатором ошибки.
    Возможно это - вполне нормальный результат, так как функция вычисляет сложное логическое условие.
    А с ошибками лучше управляться посредством исключений.
    avatar
    VitalijSerov
    Новичек
    Новичек


    Сообщения : 4
    Очки : 8
    Репутация : 0
    Дата регистрации : 2010-09-08
    Возраст : 33

    результаты, переданные через Return Empty Re: результаты, переданные через Return

    Сообщение автор VitalijSerov Пт Сен 10, 2010 11:19 pm

    Как замена типу bool в функциях можно использовать тип int.
    Во первых, вызывающий код в принципе не меняется, а ошибку можно проверять например по отрицательному возврату, т.е.

    возвращаем положительное число - если всё OK
    возвращаем ноль - если ответ отрицательный
    возвращаем минус один - если ошибка.

    Этот подход имеет одно важное преимущество, он применим в случае с dll. Если разделить приложение на модули, то управление ошибками через исключения может быть недоступно. Тем более, если Вы пишите DLL, а другой человек пишет другие DLL или EXE, у вас просто могут быть разные компиляторы( или языки программирования ).
    И ещё, возврат из функции - это всегда 32 бита информации, в эти 32 бита можно закодировать всё что угодно, например Microsoft использует в DirectX тип HRESULT и в него умещается и результат и код ошибки и т.д... А bool - это всего два состояния помещенных в один байт(обычно) и использовать его не всегда удобно, точнее удобно по началу, а потом негде развернуться Smile
    Exkalibur
    Exkalibur
    Почетный пользователь
    Почетный пользователь


    Сообщения : 89
    Очки : 144
    Репутация : 13
    Дата регистрации : 2010-02-28
    Возраст : 33
    Откуда : Красноярск

    результаты, переданные через Return Empty Re: результаты, переданные через Return

    Сообщение автор Exkalibur Вс Сен 12, 2010 9:54 pm

    VitalijSerov пишет:Как замена типу bool в функциях можно использовать тип int.
    Во первых, вызывающий код в принципе не меняется, а ошибку можно проверять например по отрицательному возврату, т.е.

    возвращаем положительное число - если всё OK
    возвращаем ноль - если ответ отрицательный
    возвращаем минус один - если ошибка.

    Этот подход имеет одно важное преимущество, он применим в случае с dll. Если разделить приложение на модули, то управление ошибками через исключения может быть недоступно. Тем более, если Вы пишите DLL, а другой человек пишет другие DLL или EXE, у вас просто могут быть разные компиляторы( или языки программирования ).
    И ещё, возврат из функции - это всегда 32 бита информации, в эти 32 бита можно закодировать всё что угодно, например Microsoft использует в DirectX тип HRESULT и в него умещается и результат и код ошибки и т.д... А bool - это всего два состояния помещенных в один байт(обычно) и использовать его не всегда удобно, точнее удобно по началу, а потом негде развернуться Smile

    Спасибо за дополнение - стоящая информация!

      Текущее время Ср Май 08, 2024 11:27 pm