#41. Оператор return. Вызов функций в аргументах | Язык C для начинающих

Поделиться
HTML-код
  • Опубликовано: 5 окт 2024
  • Практический курс по C/C++: stepik.org/cou...
    Телеграм-канал: t.me/java_and_c
    Инфо-сайт: proproprogs.ru...
    Оператор return для формирования возвращаемого значения функции и ее завершения. Порядок и особенности вызова функций в аргументах.

Комментарии • 24

  • @trimo1120
    @trimo1120 9 месяцев назад +2

    Хороший видеоурок, спасибо!

  • @andredru4278
    @andredru4278 8 месяцев назад +2

    Спасибо. Великолепно!

  • @jamjam3337
    @jamjam3337 Год назад +2

    спасибо!💪👍👏

  • @olegkomlev
    @olegkomlev 7 месяцев назад +1

    По поводу параметров функции. Действительно, нужно все данные, с которыми работает функция, стараться передавать ей в параметрах, а не через глобальные сущности. Но иногда удобнее использовать глобальные константы. Например, если все вычисления в программе должны идти с определенной точностью, можно в каждой такой функции иметь параметр, задающий эту точность. Но если точность везде одинакова, то лучше завести глобальную константу, задающую такую точность, а во всех функциях использовать эту константу, а не параметр. Глобальные сущности принято называть длинным осмысленным именем, лучше заглавными буквами, чтобы подчеркнуть ее глобальную роль. Например, EPS или даже DEFAULT_EPS.
    Другой пример. Например, имеем программу, в которой есть игровое поле - скажем, двумерный массив символов. Одна функция это поле очищает, другая на поле что-то расставляет, третья что-то ищет, отдельная функция выводит поле на экран и т.д. Но если это игровое поле только одно во всей программе, то можно исключить его из параметров и сделать обращение из всех функций глобально. При этом следует назвать этот массив длинным осмысленным именем, например BOARD или GAME_BOARD. Но если есть несколько таких полей - например, нескольких игроков, то при использовании глобальных переменных пришлось бы выполнять присваивание массива глобальной переменной перед вызовом функции и присваивание результата после. Ясно, что тогда лучше передавать поле, с которым в данный момент работает вызываемая функция, в качестве параметра этой функции.

  • @РусланКарнеенко
    @РусланКарнеенко 8 месяцев назад +2

    Спасибо

  • @ИгорьК-т1ш
    @ИгорьК-т1ш 11 месяцев назад +2

    Можно еще так сократить:
    double sq4_x(double x)
    {
    return x < 0 ? NAN : pow(x, 0.25);
    }

  • @ГубкаБоб-р8ъ
    @ГубкаБоб-р8ъ Год назад +3

    Спасибо! Очень нравится ваш стиль преподавания и подачи материала. Интересно у вас нет своих книг?
    Я бы с удовольствием купил "Изучаем Python. Балакирев С." или "Изучаем C. Балакирев С."

    • @selfedu_rus
      @selfedu_rus  Год назад +2

      Спасибо! Есть текстовые варианты видео proproprogs.ru

    • @ГубкаБоб-р8ъ
      @ГубкаБоб-р8ъ Год назад

      @@selfedu_rus Да, конечно я читаю ваш сайт и материалы на нём. Он закреплен у меня среди 10-ти достойнейших ресурсов на панели в Хроме.

    • @ГубкаБоб-р8ъ
      @ГубкаБоб-р8ъ Год назад

      @Vladimir Astrelin 100%

  • @serezhanepochatykh6065
    @serezhanepochatykh6065 Год назад +1

    Сергей, добрый день. А вы не хотели бы добавить в плейлист по C++ то, что выходит из тем за рамки базовых концепций? Например, новые фишки в последнем стандарте C++? Или вообще что есть такого в каждом стандарте, чего нет в предыдущем, начиная с C++11? Также, например, вариативные шаблоны и где их использовать можно в проектах, работе?

  • @ДмитрийЩетинин-й1б

    Благодарю! Очень годный контент и стиль! Сереж, а не планируете уроки по SQL?

    • @selfedu_rus
      @selfedu_rus  Год назад

      Спасибо! Уже есть: ruclips.net/video/TwnCXdCa8qg/видео.html

  • @i_safronov
    @i_safronov 2 месяца назад +1

    При компиляции 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",

  • @trimo1120
    @trimo1120 9 месяцев назад +1

    void print_even_x(int x)
    {
    return (x & 1) ? void : printf("x = %d
    ", x); // Битовые операции (люблю их)
    }

  • @Green_place23
    @Green_place23 8 месяцев назад +2

    Прошу вас уточнить, как функция возвращает не вещественное число, а символы NAN?

    • @selfedu_rus
      @selfedu_rus  8 месяцев назад

      Символы NAN мы видим на экране, а соответствуют они определенным образом закодированным битам вещественного числа. Каким именно, нужно почитать. Никогда не интересовался ))

    • @alexishome4322
      @alexishome4322 Месяц назад

      Тоже интересно, как можно в типе(переменной) вернуть nan. Может nan это тоже тип, но тогда как функция его возвращает если возвращаемый тип уже определен.

  • @Tiranitos
    @Tiranitos Год назад +1

    Спасибо за уроки. На мой взгляд слишком замудренные вы используете примеры в теле функций. 4-я степень и т.п.

  • @renigat_tv9051
    @renigat_tv9051 Год назад +1

    Давайте лайки до 100 догоним

  • @ДмитрийСмирнов-л6э3л
    @ДмитрийСмирнов-л6э3л 8 месяцев назад +1

    а вот и не совсем так у меня при префиксной операции инкремента всегда х принимает уже увеличенное значение не один а два (((.

    • @selfedu_rus
      @selfedu_rus  8 месяцев назад

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

    • @ДмитрийСмирнов-л6э3л
      @ДмитрийСмирнов-л6э3л 8 месяцев назад

      @@selfedu_rus да я понимаю это, скорее всего это особенность компилятора .