#41. Оператор return. Вызов функций в аргументах | Язык C для начинающих
HTML-код
- Опубликовано: 22 май 2023
- Практический курс по C/C++: stepik.org/course/193691/
Телеграм-канал: t.me/java_and_c
Инфо-сайт: proproprogs.ru/c_base
Оператор return для формирования возвращаемого значения функции и ее завершения. Порядок и особенности вызова функций в аргументах.
Глас Разума...Спасибо огромное, шикарный урок !
Хороший видеоурок, спасибо!
По поводу параметров функции. Действительно, нужно все данные, с которыми работает функция, стараться передавать ей в параметрах, а не через глобальные сущности. Но иногда удобнее использовать глобальные константы. Например, если все вычисления в программе должны идти с определенной точностью, можно в каждой такой функции иметь параметр, задающий эту точность. Но если точность везде одинакова, то лучше завести глобальную константу, задающую такую точность, а во всех функциях использовать эту константу, а не параметр. Глобальные сущности принято называть длинным осмысленным именем, лучше заглавными буквами, чтобы подчеркнуть ее глобальную роль. Например, EPS или даже DEFAULT_EPS.
Другой пример. Например, имеем программу, в которой есть игровое поле - скажем, двумерный массив символов. Одна функция это поле очищает, другая на поле что-то расставляет, третья что-то ищет, отдельная функция выводит поле на экран и т.д. Но если это игровое поле только одно во всей программе, то можно исключить его из параметров и сделать обращение из всех функций глобально. При этом следует назвать этот массив длинным осмысленным именем, например BOARD или GAME_BOARD. Но если есть несколько таких полей - например, нескольких игроков, то при использовании глобальных переменных пришлось бы выполнять присваивание массива глобальной переменной перед вызовом функции и присваивание результата после. Ясно, что тогда лучше передавать поле, с которым в данный момент работает вызываемая функция, в качестве параметра этой функции.
Спасибо. Великолепно!
спасибо!💪👍👏
Спасибо
Можно еще так сократить:
double sq4_x(double x)
{
return x < 0 ? NAN : pow(x, 0.25);
}
Сергей, добрый день. А вы не хотели бы добавить в плейлист по C++ то, что выходит из тем за рамки базовых концепций? Например, новые фишки в последнем стандарте C++? Или вообще что есть такого в каждом стандарте, чего нет в предыдущем, начиная с C++11? Также, например, вариативные шаблоны и где их использовать можно в проектах, работе?
Подумаю, спасибо!
Благодарю! Очень годный контент и стиль! Сереж, а не планируете уроки по SQL?
Спасибо! Уже есть: ruclips.net/video/TwnCXdCa8qg/видео.html
Спасибо! Очень нравится ваш стиль преподавания и подачи материала. Интересно у вас нет своих книг?
Я бы с удовольствием купил "Изучаем Python. Балакирев С." или "Изучаем C. Балакирев С."
Спасибо! Есть текстовые варианты видео proproprogs.ru
@@selfedu_rus Да, конечно я читаю ваш сайт и материалы на нём. Он закреплен у меня среди 10-ти достойнейших ресурсов на панели в Хроме.
Спасибо за правильный вопрос. Нашел для себя сайт Сергея, понял что это очередная великолепная находка
@@vladimirastrelin1719 100%
void print_even_x(int x)
{
return (x & 1) ? void : printf("x = %d
", x); // Битовые операции (люблю их)
}
Прошу вас уточнить, как функция возвращает не вещественное число, а символы NAN?
Символы NAN мы видим на экране, а соответствуют они определенным образом закодированным битам вещественного числа. Каким именно, нужно почитать. Никогда не интересовался ))
Спасибо за уроки. На мой взгляд слишком замудренные вы используете примеры в теле функций. 4-я степень и т.п.
Давайте лайки до 100 догоним
а вот и не совсем так у меня при префиксной операции инкремента всегда х принимает уже увеличенное значение не один а два (((.
я здесь лишь привожу пример, а ранее оговаривал, что такое поведение относится к неопределенному, т.к. стандартном языка не оговорено
@@selfedu_rus да я понимаю это, скорее всего это особенность компилятора .