Программирование на C. Урок 1. Наша первая программа. Часть 2

Поділитися
Вставка
  • Опубліковано 18 січ 2025

КОМЕНТАРІ • 76

  • @cytorak875
    @cytorak875 4 роки тому +6

    Ребята, у кого не получается получить ассемблерный код, автор пишет "gcc -S main.i -o main.s" и у него это работает. Если у вас Windows 10 и при написании команды выше, вы не видите созданный файл, то выполните команду "gcc -S main.c" файл появится и все заработает :)

  • @narodstream552
    @narodstream552  5 років тому +27

    Огромная просьба! Друзья, поменьше пишите всяких неконструктивных комментариев, не засоряйте общение. Побольше по теме. Тема: программирование на СИ, а не "выбор IDE" или "выбор операционной системы". Я в самой первой части самого первого урка объяснил, почему Windows, а не Linux, почему командная строка (а следовательно WinGW), а не IDE.
    Добавлю ещё, хотя я это тоже уже говорил. Мы готовимся к программированию контроллеров, а для большинства из них в различных IDE нет тулчейнов, ну либо есть, но они оставляют желать лучшего. Поэтому конструировать их нам придётся своими собственными руками, также Makefile собирать тоже. Поэтому если мы сейчас начнём сразу работать с IDE, то мы так ничему и не научимся в плане настройки правильной работы сборки наших проектов, а также не поймём, как она происходит.
    Поэтому на данном этапе для нас работа в IDE смерти подобна. Это всё равно что не самим писать код, а попросить, чтобы за нас это сделал кто-то...

    • @ivanpetrov228_
      @ivanpetrov228_ 5 років тому

      А про cmake что нибудь будет?

    • @narodstream552
      @narodstream552  5 років тому

      В планах пока нет, так как массовых просьб пока не было.

    • @kirillpetrakov3282
      @kirillpetrakov3282 5 років тому +1

      @@ivanpetrov228_ cmake - это утилита для автоматического построения makefile-ов, другими словами, автоматическое построение проекта в любом случае будет производиться утилитой make. По мне так лучше разобраться с make и сделать один универсальный скрипт, и пользоваться им, чем изучать ещё один скриптовый язык.

    • @dmitriykonopinskiy3793
      @dmitriykonopinskiy3793 4 роки тому

      Как сделать такие панельки с путями с Коммандере?

  • @22altair22
    @22altair22 2 роки тому +3

    Огромная благодарность автору канала. Надеюсь в дальнейшем увидеть более сложные программы и погружение в более сложные моменты языка Си.

  • @ebjikkolu4757
    @ebjikkolu4757 5 років тому

    Сколько пересмотрел уроков по сипипи ,настолько подробно нигде не рассказывалось.Ваш цикл уроков обещает быть уникальным .Пойду задоначу

    • @ivanpetrov228_
      @ivanpetrov228_ 5 років тому

      На степике есть отличный курс

  • @ThisDaveAndThatJohn
    @ThisDaveAndThatJohn 5 років тому

    Ютуб хороший канал порекомендовал. Уроки на вес золота!

  • @РоманКовальчук1ПІ-20Б

    Спасибо за такое доступное объяснение. Очень благодарен!

  • @ИркутскийБоярышник

    Дай вам бог здоровья!

  • @Уасся-у7к
    @Уасся-у7к 2 роки тому +1

    Всем доброго времени суток! Чаво то я не то видать сделал... "gcc: error: main.c: No such file or directory
    gcc: fatal error: no input files
    compilation terminated." 😐

  • @АлександрЯковишин-л6ы

    Друзья, подскажите, пожалуйста. После того, как я ввел "gcc main.c" у меня появилось такое сообщение: "gcc" не является внутренней или внешней
    командой, исполняемой программой или пакетным файлом. Что делать?

  • @Старичок-ж2о
    @Старичок-ж2о 4 роки тому

    Добрый день. нашел случайно ваш канал, у вас очень похожи тональность и тембр голоса, на моего преподавателя информатики. Также с видом знающего человека все объясняете. Подписался на канал. Пока все с первого раза получается у меня. В школе преподавали Pascal. Может быть и по этому все с первого раза.

  • @михаилюртаев-ф9ю
    @михаилюртаев-ф9ю 3 роки тому

    отличная работа,спасибо большое

  • @alex080583
    @alex080583 5 років тому +3

    спасибо за урок

  • @Croco1000000
    @Croco1000000 5 років тому

    За укрупнённый шрифт отдельное спасибо!

  • @kelihosx8673
    @kelihosx8673 5 років тому

    Спасибо большое за уроки. Очень хотелось бы от Вас увидеть уроки по Python'y.

  • @ElliottGrosvenor
    @ElliottGrosvenor 2 роки тому

    Поправочка. Современные компиляторы с поддержкой стандарта С(11), а это наверное уже все развивающиеся, будут ругаться на пустые скобки списка параметров функции main. Нужно либо выключить поддержку С(11), либо явно указать тип в скобках - void

  • @thomascromwell2083
    @thomascromwell2083 4 роки тому

    Большое спасибо Вам!

  • @Maksym_Palii
    @Maksym_Palii 5 років тому +2

    Доброго времени суток. После этапа ассемблирования пытаюсь открыть файл в notepad++, но получаю абракадабру, в отличии от результата в Вашем примере. Понимаю, что проблема в кодировке, но пока не знаю как исправить. Прошу совета)

    • @dmitriytrefilov3797
      @dmitriytrefilov3797 4 роки тому +1

      Здравствуйте, нашли ответ на свой вопрос? Я только начал смотреть курс и тоже столкнулся с этой проблемой.

  • @АлексейТаганрогов

    Помню, как у нас в Политехе проходило первое занятие по программированию. Препод зачем-то начал с рассказа о лицензиях на ПО, затем какие-то непонятные действия в консоли, в конце домашнее задание про регулярные выражения. На первом занятии. На второе занятие треть группы не пришла.

  • @narodstream552
    @narodstream552  5 років тому +6

    Комментарий со ссылкой на сторонний ресурс удалил. Просьба не постите ссылки в комментариях, давно уже предупреждал, что буду удалять. Алгоритмы данного сообщества (называется UA-cam) устроены так, что сторонние ссылки в комментариях работают против канала. Если вам данный канал не нужен, то мне он очень дорог, надеюсь, что не только мне.
    А английский, я кстати, не без помощи указанного канала Лены изучал, причем знаком с ней лично.

  • @Inok83
    @Inok83 5 років тому

    Спасибо за уроки. Смотрю все Ваши видео по электронике. Очень рад что появились уроки по программированию с прицелом под микроконтроллеры. Под скажите какими способами учить английский язык (с прицелом для микроконтроллеров), как делали это Вы? Спасибо за Ваш труд и время.

  • @ВладимирПанов-з5н
    @ВладимирПанов-з5н 5 років тому

    Спасибо очень доходчиво!!!

  • @kelistraza
    @kelistraza 5 років тому

    Спасибо за урок!

  • @РоманЗахарчук-я2ы
    @РоманЗахарчук-я2ы 2 роки тому

    У меня не создается .exe
    хотя команда gcc -- help проходит, в чем загвоздка?

  • @e_wade
    @e_wade 5 років тому

    как сделать так, что командная строка сразу ссылалась на нужную папку? у как у нее настраивать параметры(типо шрифт и тд)? поможет только тотал командер?

  • @dima_dmitrenok
    @dima_dmitrenok 3 роки тому

    Чем можно открыть файл типа "o"? Notepad++ выдаёт набор непонятных символов.

  • @usatorrent
    @usatorrent 5 років тому +1

    добавьте пожалуйста в будущие уроки описание .h и .c, что в них писать и как их обьявлять при использовании нескольких пар, типа f1.h , f1.c, f2.h , f2.c, f3.h, f3 .c и так далее. main использует f1,f2,f3 или main использует f1, f1 использует f2, f2 использует f3 или комбинации. спасибо

    • @SpaceflightSimulator-m3q
      @SpaceflightSimulator-m3q 5 років тому

      Дык, где подключили тот и будет использовать.

  • @aerocobra9094
    @aerocobra9094 4 роки тому

    👍👍👍супер!

  • @alexandriv2174
    @alexandriv2174 2 роки тому

    а у меня после установки в командной строке gcc не находит

  • @ИванВ-щ4в
    @ИванВ-щ4в 3 роки тому

    notepad++ не понимает формат s и asm как как можно настроить

  • @boson_higgs
    @boson_higgs 2 роки тому

    Добрый день! Где можно скачать Ваши уроки по с одним файлом? Спасибо.

  • @good_night_rf
    @good_night_rf 5 років тому +2

    Я обычно когда пишу программы то сразу hex пишу в текстовом редакторе под ms-dos. Очень удобно. И время выполнения превосходит все ожидания!!!

  • @Дмитрий-х2я4й
    @Дмитрий-х2я4й 5 років тому

    Все понятно и доступно)))

  • @МайбородаДенис
    @МайбородаДенис 4 роки тому

    Здравствуйте. Спасибо большое за уроки. Подскажите, пожалуйста. У меня такая проблема. Написал программу. Сохранил ее под именем main.c. В командной строке ввел gcc main.c. В папке экзэшный файл создался, но в командной строке программа не выполнилась. Почему такое случилось? Все делаю как у Вас.

  • @never.m1nd
    @never.m1nd 5 років тому +1

    Советую использовать темные темы с подсведкой синтаксиса и вам менее вреда для глаз и нам виднее) да и код так визуально более различим

    • @ivanpetrov228_
      @ivanpetrov228_ 5 років тому

      От темных тем глаза наоборот больше напрягаются

    • @ThisDaveAndThatJohn
      @ThisDaveAndThatJohn 5 років тому

      @@ivanpetrov228_ нет, статистика показывает что большинство предпочитает темный.

    • @narodstream552
      @narodstream552  5 років тому

      ребятки, давайте может лучше по существу урока? подобные беседы лучше вести где-то в других местах.

    • @ivanpetrov228_
      @ivanpetrov228_ 5 років тому +1

      @@ThisDaveAndThatJohn я и сам предпочитаю, дело не в предпочтениях

  • @kirillmolotkoy1736
    @kirillmolotkoy1736 3 роки тому

    Спасибо! смотрю на скорости 1.75

  • @ВладВертикалов
    @ВладВертикалов 4 роки тому

    Здравствуйте!
    Все сделал как в видео. Когда ввожу gcc --help, все нормально, Потом ввожу gcc main.c программа компилируется, получается исполняемый файл a, тоже все нормально, но когда потом ввожу название исполняемого файлa a в консоли выскакивает окно с сообщением "точка входа в процедуру _emutls_get_address не найдена в библиотеке DLL libmingwex-2.dll" В чем может быть причина ошибки? Подскажите пожалуйста.

    • @narodstream552
      @narodstream552  4 роки тому

      Это Windows. Должна присутствовать динамически-линкуемая библиотека, указанная Вами. В большинстве стандартных установок ОС Windows она присутствует, но случались случаи, когда её в силу тех или иных причин не было в комплектах. В таком случае при установке MinGW Вам вдобавок к пакетам, перечисленным в данном уроке необходимо выбрать в установочном комплекте пакет mingw32-libmingwex (The MinGW Runtime Library) - желательно оба пакета - и dev и dll.

  • @OooFunnyCatooO
    @OooFunnyCatooO 4 роки тому

    Спасибо большое автору за уроки! Очень приятно смотреть и изучать. Возникла проблема. После ассемблировки файла main.i создаётся "кривой" main.s, заполненный внутри кучей адресов, навроде 0х80 (до этого всё было как по уроку). Никакой мнемоники ассемблера нет, и командная строка выдаёт кучу соответствующих подобных ошибок: Error: invalid character (0x80) in mnemonic. При этом, если открывать main.s в Notepad++ у него почему-то изначально стоит кодировка ANSI. У всех предыдущих файлов была UTF-8. Не подскажете, в чём проблема?

  • @XyJleGUN
    @XyJleGUN 5 років тому

    А на чем основан выбор среды разработки?
    Есть же достаточное количество ide, которые упрощают процесс компиляции.

    • @narodstream552
      @narodstream552  5 років тому +10

      Пока никакой среды. Надо понять механизм сборки с нуля. IDE это всё скрывает. Когда научимся нормально работать с Makefile, тогда и среда. Дело не в среде пока что, а в умении писать программу. В этом IDE точно не поможет, поверьте мне с моим 30-летним опытом.

  • @ivanpetrov228_
    @ivanpetrov228_ 5 років тому

    Почему вы не используете какой нибудь дистрибутив linux? Больно смотреть на это подобие терминала и пляски с mingw. Попробуйте обязательно) За урок спасибо, сам пишу бэкэнд на более высокоуровневых языках, но для лучшего понимания полезно спускаться на более низкий уровень, такой как Си)

    • @narodstream552
      @narodstream552  5 років тому

      Дык я вроде сказал, что операционной системой пользуется большинство пользователей. Linux из рядовых пользователей мало кто использует. Но если у кого-то есть желание использовать именно Linux - пожалуйста. Код будет собираться и работать в консоли. Мне приходится больше работать в Win, так как в Linux даже экранку писать и то не удобно, я уж не говорю об Adobe Premiere, которого под него вообще нет.

    • @ivanpetrov228_
      @ivanpetrov228_ 5 років тому

      @@narodstream552 я о том, что разрабатывать под linux удобнее, всякого софта для медиа не хватает, это да

    • @narodstream552
      @narodstream552  5 років тому

      Так я и не против. Если есть желание - работайте под любым OS. C это позволяет, это же не ASM. Вот тот только частично.

  • @ВладКотейко-й1р
    @ВладКотейко-й1р 5 років тому

    Спасибо все класс )

  • @BigEddyson
    @BigEddyson 5 років тому

    Круто!

  • @MolotSNK
    @MolotSNK 5 років тому

    Спасибо!

  • @U_video
    @U_video 5 років тому

    Спасибо за видео. Что то я совсем запутался. Вы сказали, что int - это 4 байта. Я всегда считал, что 2. Посмотрел в таблицах, где-то 32, где-то 16 бит, а где-то "16 or 32". Где правда.

    • @narodstream552
      @narodstream552  5 років тому

      Мы собираем 32-битный код, тот который работает под 32-битный Win. Также он будет работать и под 64, под 16-битный работать не будет. Вот если бы мы собирали под него или по 16-битный DOS, то INT был бы там тоже 16-битный. Как-то так.

    • @U_video
      @U_video 5 років тому

      @@narodstream552 То есть int соответствует разрядности процессора. Вот только в AVR int - 16 бит, а процессор 8-и битный.

    • @narodstream552
      @narodstream552  5 років тому

      Это тоже не факт. От компилятора тоже зависит. проверяйте sizeof(переменная)

    • @sadsanta84
      @sadsanta84 5 років тому

      ​@@U_video int по сути это просто "целое", думать о его разрядности в принципе вредно, использовать его стоит только тогда, когда разрядность не важна. Умный компилятор и вовсе подберёт минимально необходимое количество байт, необходимое для задачи, в которой этот int задействован. Спецификация языка лишь гарантирует минимальные пределы значений, которые int обязан вмещать, но не его разрядность. Если нужна строго определённая разрядность, то стоит использовать уже специальные для этого int8_t, int16_t, int32_t, int64_t. Про short/long/word/dword и прочий зоопарк тоже рекомендую сразу забыть.

    • @SpaceflightSimulator-m3q
      @SpaceflightSimulator-m3q 5 років тому

      @@sadsanta84 я в принципе тоже как-то так думал, спс за мнение.

  • @cryptobee04
    @cryptobee04 5 років тому

    Ya uvajayu vas

  • @whaiten936
    @whaiten936 5 років тому

    Лайк

  • @cryptobee04
    @cryptobee04 5 років тому

    👏👏👏👏👏👍

  • @МайбородаДенис
    @МайбородаДенис 4 роки тому

    Извините, разобрался.

  • @user-hruser
    @user-hruser Рік тому +1

    орнул с Шария

  • @ЕвгенийНосов-ф7ч
    @ЕвгенийНосов-ф7ч 2 роки тому

    Это явно не для новичков а для продвинутых пользователей ,сначало нужно освоить работу с файловым менеджером,потом научитьсЯ пользоваться командной строкой и т.д

  • @shohratserdar2682
    @shohratserdar2682 4 роки тому

    nämeler düşündirýäňeý

  • @Красный-ц9ч
    @Красный-ц9ч 5 років тому

    Спасибо!
    Хахаха, Шарий выскочил! Толик по всюду)))

  • @sbalymov
    @sbalymov 5 років тому +1

    Спасибо!