Программирование на C. Урок 12. Функции

Sdílet
Vložit
  • čas přidán 11. 09. 2024

Komentáře • 25

  • @boson_higgs
    @boson_higgs Před 2 lety

    Очень классно все объяснили, долгое время не мог понять передачу аргументов функции пока не посмотрел ваш урок ! Спасибо большое !

  • @DmitriyVasil
    @DmitriyVasil Před 5 lety +5

    Спасибо огромное. Как всегда просто и понятно. Действительно про указатели хотелось бы поподробнее узнать.

  • @umnikumnikov1338
    @umnikumnikov1338 Před 3 lety

    Хорошо объясняет и начинает с базовых вещей ,сядешь книгу читать , там сразу сыпят функциями и не поймёшь что и откуда , спасибо!!!

  • @user-wl5qb6ht3t
    @user-wl5qb6ht3t Před 2 lety

    Доброго времени суток!Так классно объясняете!
    Пытаюсь освоить С со знанием делфинского, много чего непонятно по синтаксису было с функциями. В книжках муть какая-то если честно. У Вас всё по полочкам! Спасибо Вам огромное!

  • @dmitriycold6906
    @dmitriycold6906 Před 5 lety +2

    Да вот про указатели интересно будет послушать.

  • @user-sd4pv6bc8v
    @user-sd4pv6bc8v Před 4 lety

    Очень здорово. Вы что-то говорили про уроки по ассемблеру. Было бы здорово!

  • @timelord1137
    @timelord1137 Před 5 lety +1

    Изумительно

  • @user-ne4bd3ry1n
    @user-ne4bd3ry1n Před 5 lety

    возможность неявного преобразования типов также должна быть обозначена сразу - при объявлении прототипа или функции

  • @user-gp9ln4wj1r
    @user-gp9ln4wj1r Před 5 lety

    Спасибо!

  • @proletarian
    @proletarian Před 4 lety

    Читаю книгу "Язык программирования С Керниган, Ритчи" и там в примерах функций, описание аргументов функции происходит за круглыми скобками и перед фигурным, типа так
    int sum(x, y)
    int x, y;
    {
    return x + y;
    }
    в интернете таких примеров не находил, судя по тому что книга издана в 1978 году предполагаю что это устаревший вид записи.
    Все же хотелось услышать ваше мнение по этому поводу.
    Спасибо

  • @nart658
    @nart658 Před 5 lety

    спасибо огромное я это проевлю подпиской на вас

  • @raal8438
    @raal8438 Před 4 lety

    Narod, скажите пожалуйста ,а можете вы показать урок написания программы как наглядно вывести в окне график функции например y=sin(x) или другой, или хотя бы для начала просто линию по точкам, вот это был бы класс! а так все только и могут показать хиллоу ворлд! )))))) спасибо, если сможете.

    • @narodstream552
      @narodstream552  Před 4 lety

      Спасибо!
      Да показать-то я может и покажу, но мы пока ещё не подошли к графическому отображению, да и, мало того, ещё не решили, какую графическую библиотеку выбрать. Я склоняюсь к GTK и QT, можно также использовать и Windows API, но мы тогда к данному OS привяжемся, равно как GTK нас привяжет к Linux. QT более мультиплатформенна, но для новичков, как я считаю, тяжелая. Мы к ней обязательно подойдём, причём лучше всего по моим наблюдением она поддерживается именно в Linux, поэтому предлагаю начать с GTK и затем плавно перейти к QT. Также Linux был выбран из соображения большей его адаптированности к разработке приложений, а также впоследствии планируется работа с LInux Yocto - системой сборки для встроенных систем, поэтому, думаю, что несколько уроков я в будущем всё-таки дам пока по GTK и именно графическое отображение функции, предлагаемое Вами, я обязательно возьму на вооружение.
      Ещё раз спасибо за интерес к ресурсу!

    • @raal8438
      @raal8438 Před 4 lety

      ​@@narodstream552 , спасибо за ответ, а меня интересует этот вопрос чисто из конкретных нужд, я в свое время писал много тестовых программ для железа, ( я электронщик на пенсии) на разных языках начиная с машинных кодов и ассемблеров разных платформ, Pascal, Delphi, осциллографы, АЧХ метры, дизассемблеры, крестики нолики,потом в 2000-х гг увлекся микроконтроллерами AVR и на Си писал тоже кучу программ синтезаторов для управления ТВ-тюнерами и АМ FM CW тюнерами от автомагнитол, а недавно мне захотелось свой осциллограф на паскале переписать на Си и произошел конфуз, оказалось что нигде среди огромного инета нет ничего, конкретного примера простой программы строк на 20-30 рисования в окне на Си или ++ простой линии и вывода туда же значений переменных. Сразу скажу Visual C++, Qt, C#, Piton и всякие другие монстры для того чтобы всего лишь вывести линию в окно и пару значений переменных конечно же бред сивой кобылы ))). Я пробовал Dev C++, CodeBlocks и еще какие то, но Falcon больше понравился. Вот такие у меня проблемы ))) правда после пары недель усердного просматривания разных уроков, примеров и описаний от майкрософта/ ВИКИПЕДИИ, и разных форумов понял что все всё скрывают или не знают, все вычисляют факториалы, интегралы, выводят на консоль хеллоу и всякую хрень, а простого работающего примера нарисовать в окне линию по точкам для моего осциллографа нет. Я конечно же много примеров проверял на этих IDE, и уже вроде вот вот схвачу его за хвост, но пока никак, кручeсь вокруг BitMap и BitBlt, а точнее как рисовать в битмапе и как вывести переменную, a BitBlt вроде уже работает предсказуемо ))) Да, потом надо будет получить в буфер звук с микрофона, но думаю с этим проблем не будет) хотя тоже не просто, в реале брать куски по милисекундам. На Pascal было проще, и там тоже многое делал на WinAPI c выводом на Canvas или потом прямо на tPanel.

  • @good_night_rf
    @good_night_rf Před 5 lety +1

    Ребята а я правильно понимаю что если писать на ассемблере то для amd и intel подход написания будит разный. Ведь архитектуры то разные. Получается нужно сначала вникнуть в работу той или иной архитектуры а потом уже учить ассемблер?

    • @narodstream552
      @narodstream552  Před 5 lety +1

      Практически одинаковый, сейчас все инструкции универсальны. Поэтому программы, написанные для компьютера, запускаются везде. Иначе бы они поставлялись в исходном коде. И компиляторы для Intel и AMD были бы разные.

  • @РусланСидоров-й7п

    Подскажите пожалуйста как расположить функцию по указанному адресу допустим @8000400.

  • @user-ne4bd3ry1n
    @user-ne4bd3ry1n Před 5 lety

    есть еще процедуры (из языка паскаль) у которых аргументов больше одного

    • @ProgrammerForever
      @ProgrammerForever Před 4 lety

      В паскале процедура - это функция, не возвращающая значения.

    • @vip51000
      @vip51000 Před 4 lety

      @@ProgrammerForever в си это диагностическая

  • @calem4255
    @calem4255 Před 4 lety

    А почему вы используете notepad вместо IDE??

    • @narodstream552
      @narodstream552  Před 4 lety +1

      В более поздних уроках пойдёт IDE. А блокнот в целях понимания процесса сборки. В IDE он скрыт от нас и ложится не на наши плечи, а на плечи IDE.

  • @tokstudio
    @tokstudio Před 4 lety

    Запутался совсем я в этих функциях
    У вас создана функция
    void PrintSum(int x, int y);

    int main()
    {
    PrintSum(15, 17);
    return 0;
    }

    void PrintSum(int x, int y)
    {
    printf ("%d + %d = %d
    ", x, y, x+y);
    }
    17+15=32.
    Зачем нужна еще одна функция ?
    Также добавим на неё прототип ? Зачем?
    Полная путаница.

    • @narodstream552
      @narodstream552  Před 4 lety

      1. Чтобы показать работу функции.
      2. Чтобы функция была видна ибо текст интерпретатор читает сверху вниз.

    • @tokstudio
      @tokstudio Před 4 lety

      @@narodstream552 дак а разве она в первом варианте не видна?
      Я понимаю так.
      Функции требуется для того чтобы не повторять много раз одинаковый код.
      В разных задачах.
      Например
      Задача программе идти по ссылкам вбивая адрес в строке.
      Yandex.ru.
      Google.ru.
      Mail.ru.
      И чтоб не создавать каждый раз код вызова ссылки
      Пример кода
      Fopen("site1");
      Fopen("site2");
      Fopen3,4,10 и тд.
      Достаточно создать одну функцию и подставлять только ссылку.
      В программу.
      Верно или нет.?