#41. Оператор return. Вызов функций в аргументах | Язык C для начинающих
HTML-код
- Опубликовано: 5 окт 2024
- Практический курс по C/C++: stepik.org/cou...
Телеграм-канал: t.me/java_and_c
Инфо-сайт: proproprogs.ru...
Оператор return для формирования возвращаемого значения функции и ее завершения. Порядок и особенности вызова функций в аргументах.
Хороший видеоурок, спасибо!
Спасибо. Великолепно!
спасибо!💪👍👏
По поводу параметров функции. Действительно, нужно все данные, с которыми работает функция, стараться передавать ей в параметрах, а не через глобальные сущности. Но иногда удобнее использовать глобальные константы. Например, если все вычисления в программе должны идти с определенной точностью, можно в каждой такой функции иметь параметр, задающий эту точность. Но если точность везде одинакова, то лучше завести глобальную константу, задающую такую точность, а во всех функциях использовать эту константу, а не параметр. Глобальные сущности принято называть длинным осмысленным именем, лучше заглавными буквами, чтобы подчеркнуть ее глобальную роль. Например, EPS или даже DEFAULT_EPS.
Другой пример. Например, имеем программу, в которой есть игровое поле - скажем, двумерный массив символов. Одна функция это поле очищает, другая на поле что-то расставляет, третья что-то ищет, отдельная функция выводит поле на экран и т.д. Но если это игровое поле только одно во всей программе, то можно исключить его из параметров и сделать обращение из всех функций глобально. При этом следует назвать этот массив длинным осмысленным именем, например BOARD или GAME_BOARD. Но если есть несколько таких полей - например, нескольких игроков, то при использовании глобальных переменных пришлось бы выполнять присваивание массива глобальной переменной перед вызовом функции и присваивание результата после. Ясно, что тогда лучше передавать поле, с которым в данный момент работает вызываемая функция, в качестве параметра этой функции.
Спасибо
Можно еще так сократить:
double sq4_x(double x)
{
return x < 0 ? NAN : pow(x, 0.25);
}
Спасибо! Очень нравится ваш стиль преподавания и подачи материала. Интересно у вас нет своих книг?
Я бы с удовольствием купил "Изучаем Python. Балакирев С." или "Изучаем C. Балакирев С."
Спасибо! Есть текстовые варианты видео proproprogs.ru
@@selfedu_rus Да, конечно я читаю ваш сайт и материалы на нём. Он закреплен у меня среди 10-ти достойнейших ресурсов на панели в Хроме.
@Vladimir Astrelin 100%
Сергей, добрый день. А вы не хотели бы добавить в плейлист по C++ то, что выходит из тем за рамки базовых концепций? Например, новые фишки в последнем стандарте C++? Или вообще что есть такого в каждом стандарте, чего нет в предыдущем, начиная с C++11? Также, например, вариативные шаблоны и где их использовать можно в проектах, работе?
Подумаю, спасибо!
Благодарю! Очень годный контент и стиль! Сереж, а не планируете уроки по SQL?
Спасибо! Уже есть: ruclips.net/video/TwnCXdCa8qg/видео.html
При компиляции 1:57 возникла ошибка: main.c:(.text+0x37): undefined reference to `pow'
collect2: error: ld returned 1 exit status. Решение: нужно перейти в файл settings.json и добавить аргумент для компилятора в блоке "c" -lm. Пример: "c": "cd $dir && gcc -std=c99 $fileName -lm -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
void print_even_x(int x)
{
return (x & 1) ? void : printf("x = %d
", x); // Битовые операции (люблю их)
}
Прошу вас уточнить, как функция возвращает не вещественное число, а символы NAN?
Символы NAN мы видим на экране, а соответствуют они определенным образом закодированным битам вещественного числа. Каким именно, нужно почитать. Никогда не интересовался ))
Тоже интересно, как можно в типе(переменной) вернуть nan. Может nan это тоже тип, но тогда как функция его возвращает если возвращаемый тип уже определен.
Спасибо за уроки. На мой взгляд слишком замудренные вы используете примеры в теле функций. 4-я степень и т.п.
Давайте лайки до 100 догоним
а вот и не совсем так у меня при префиксной операции инкремента всегда х принимает уже увеличенное значение не один а два (((.
я здесь лишь привожу пример, а ранее оговаривал, что такое поведение относится к неопределенному, т.к. стандартном языка не оговорено
@@selfedu_rus да я понимаю это, скорее всего это особенность компилятора .