Препроцессор что это. Директива

Поделиться
HTML-код
  • Опубликовано: 15 дек 2024
  • Понравилось видео или оказалось полезным? Подпишись!
    Препроцессор что это. Директива #define. Макросы. Директивы препроцессора что это. C ++ Урок #66
    Уроки по программированию
    Наша группа ВК smplcode
    Подписывайтесь на канал / @simplecodeit

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

  • @max325475685
    @max325475685 6 лет назад +190

    Я просто скачал видео( т.к. не имею доступа к безлимитному интернету в 21 веке) и решил отлайкать все с первого урока. Не устану говорить спасибо! Добавьте пожалуйста номер счёта. есть люди, которые желают отблагодарить вас материально

    • @SimpleCodeIT
      @SimpleCodeIT  6 лет назад +41

      Пожалуйста! Благодарю за поддержку! Ссылка для тех кто желает отблагодарить материально www.donationalerts.ru/r/simplecode

    • @alexxxusxxi
      @alexxxusxxi 6 лет назад +18

      Поддерживаю, у Сергея есть курс на Udemy. Я уже купил. Еще бы руку пожать! :)

    • @Next__Play
      @Next__Play 3 года назад +1

      @@alexxxusxxi Я случайно зашел на этот канал. Почему то мне не показывает Ютуб в рекомендуемые....

    • @kerundy8804
      @kerundy8804 3 года назад +3

      @@alexxxusxxi Можешь, пожалуйста, дать ссылку на udemy Сергея?

  • @nap0le0nb0naparte7
    @nap0le0nb0naparte7 7 лет назад +27

    include знал,а вот define щас понял как работает,удобно,Спасибо Сергей!!!

  • @HeavenofTERA
    @HeavenofTERA 5 лет назад +41

    После этого урока, перевел все директивы на эмодзи символы :D

  • @TheWladberlin
    @TheWladberlin 5 лет назад +34

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

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

      Вы пишете: *желательно минимум вмешательства в стандарт синтаксиса языка* Вмешательство в стандарт синтаксиса языка - это UB

  • @SimpleCodeIT
    @SimpleCodeIT  7 лет назад +18

    #препроцессор #define #SimpleCode #урокипрограммирования

  • @KraionixX
    @KraionixX 4 года назад +62

    *Написал 1C на C++*
    #include
    #define процедура int main
    #define установить_язык setlocale
    #define ру "ru"
    #define ЛОКАЛИЗОВАТЬ_ВСЕ LC_ALL
    #define использовать_пространство_имен using namespace
    #define вернуть return
    #define вывести cout
    #define новстроч endl
    использовать_пространство_имен std;
    процедура()
    {
    установить_язык(ЛОКАЛИЗОВАТЬ_ВСЕ,ру);

    вывести

    • @cicada666
      @cicada666 4 года назад +9

      Ты в конце фигурную скобку забыл)

    • @artsam7617
      @artsam7617 4 года назад +7

      Интересно, но тупо и бесполезно. Проще изначальными методами и понятней.

    • @Anonymous-jr1vx
      @Anonymous-jr1vx 3 года назад

      @@artsam7617 ну не понятней). Зато у меня программа долго загружается и англ программистам не понятно будет).

    • @АлександрПопов-ф8т
      @АлександрПопов-ф8т 3 года назад +7

      а Вы не из 1С программистов?

    • @firstandlast4435
      @firstandlast4435 2 года назад

      Жжешь) интересно а часто встречаемые части кода можно так сокращать, было бы удобно, возможно)

  • @skorp291
    @skorp291 7 лет назад +32

    Очередной лайк!!! Не перестаю восхищаться умением автора донести информацию в сжатом и в то же время доступном формате!!!!

  • @Silixgg
    @Silixgg 2 года назад +3

    Как же хорошо можно преподавать язык Си! Настолько привыкаешь к вашему голосу и спокойной подаче информации - что включаешь даже фоном для успокоения)

  • @JohnSmith-es2fh
    @JohnSmith-es2fh 4 года назад +5

    удивительно то, как define облегчает жизнь при работе с большими проектами, спасибо за *ОТЛИЧНОЕ* объяснение

  • @КирилоКрасняков
    @КирилоКрасняков 2 месяца назад

    Спасибо большое за урок! На паре не смог понять это, но у вас всё ясно!

  • @Next__Play
    @Next__Play 3 года назад +5

    Спасибо большое. Вы все правильно описали. Гайвер в своих прогах все в девайнах захреначил.... Я даже в ступор сначала ушел.......

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

    Спасибо за краткость и ясность!

  • @archiechellaut9483
    @archiechellaut9483 3 года назад +2

    Большое спасибо вам за урок и прекрасное пояснение, Сергей!

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

    Хотел понять что такое define, теперь стало ясно, спасибо!

  • @ДмитрийКуражов-г3ч
    @ДмитрийКуражов-г3ч 2 года назад

    Спасибо большое за качественные уроки. Актуально и по сей день!

  • @andreich063
    @andreich063 5 лет назад +1

    Посмотрел видео и понравилось как преподносит информацию . лайкну и буду смотреть дальше.

  • @serhiizamkovyi9288
    @serhiizamkovyi9288 7 лет назад +44

    Блин, все супер! Чего так мало просмотров? Уроки заслуживают больше!

    • @SimpleCodeIT
      @SimpleCodeIT  7 лет назад +16

      Благодарю, за поддержку! Исправить ситуацию очень просто, если все кому нравятся мои уроки сделают по репосту или жмакнут лайк=)

    • @jangiryanarsen4952
      @jangiryanarsen4952 7 лет назад +2

      Потому что многие считают программирование(вообще науку) не искусством, искусством математики физики итд тип , а занудство. .

    • @ЗахарМаймескул
      @ЗахарМаймескул 4 года назад

      @@loner7222 +

    • @mar_kha
      @mar_kha 3 года назад +1

      Не у всех хватает терпения и настойчивости(
      Кто-то понимает, что программирование - это не его, а кому-то только предстоит узнать)

    • @geroitruda8157
      @geroitruda8157 2 года назад +1

      @@mar_kha ,часто лень и отсутствие дисциплины, перечеркивает обучение на корню. Даже если у человека есть хорошие задатки к обучаемости.

  • @trainrobloxcar1159
    @trainrobloxcar1159 3 года назад +2

    Храни вас Бог!!!! я уже свихивалась потихоньку. Вы так всё прекрасно объясняете

  • @Ermine882
    @Ermine882 7 лет назад +11

    Очередное спасибо за урок.

  • @MagicMath02
    @MagicMath02 3 года назад

    Ваш видое уроки всегда мне будет полезно, именно нам студентам ! Вам большое спасибо! Продолжаете дальше и развиваете👍✊

  • @trumpdmitry2288
    @trumpdmitry2288 6 лет назад +81

    Гайд о том , как создать Йопта скрипт

    • @lmrbzv
      @lmrbzv 4 года назад +4

      ахахах, тоже об этом подумал!

    • @o_o2291
      @o_o2291 3 года назад +7

      Точнее Йопта++

    • @jellyfish6042
      @jellyfish6042 3 года назад +1

      Лол, а что это

    • @Гычпук
      @Гычпук Год назад

      хахаха, сделал

  • @ДГаусс
    @ДГаусс 4 года назад

    Спасибо, Сергей, за столь хорошую информацию

  • @arcudaOgk
    @arcudaOgk 6 лет назад +8

    Спасибо! Отблагодарил вас небольшим бонусом).
    Прикрепите лучше ссылку в описание к видео - "Для тех кто желает отблагодарить материально www.donationalerts.ru/r/simplecode "

  • @javacoderfromchengdu2734
    @javacoderfromchengdu2734 5 лет назад +1

    благодарствую.

  • @Firuz26
    @Firuz26 7 лет назад +6

    Спасибо

  • @user_name_mr_x
    @user_name_mr_x 3 года назад +2

    Чтобы не было проблем, как с begin, лучше всегда писать простанство имён std, так будет std::begin() и begin как скобочка))

  • @НиколайПокровский-р6в

    Спасибо)

  • @АнатолийРогожников-л7ь

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

  • @АлександрЛитвинюк-х2ы

    Спасибо за знания !

  • @piotrusyi
    @piotrusyi 3 года назад

    Благо дарю за урок)

  • @chelovechek7773
    @chelovechek7773 6 месяцев назад

    спасибо!

  • @rettjaconomaili8201
    @rettjaconomaili8201 6 лет назад +4

    Спасибо!)

  • @den1ssss
    @den1ssss 7 лет назад +12

    Сергей, а правильно я понимаю. что если include подключает файл, то если написать #include , или еще дополнительно дописать путь к файлу, то он будет брать данные оттуда?

  • @kerundy8804
    @kerundy8804 3 года назад

    Круто! Интересная тема

  • @moratoPg
    @moratoPg 6 лет назад +2

    Спасибо !

  • @shamanjoe7508
    @shamanjoe7508 6 лет назад +2

    спасибо большое!

  • @irmaheigern6706
    @irmaheigern6706 2 года назад

    Большое спасибо!❤🍪

  • @ВладимирШестаков-ы3ч

    Спасибо !!

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

    Что же ты раньше молчал о такой прекрасной штуке.Теперь я не буду писать этот cout

  • @gagikarakelyan6014
    @gagikarakelyan6014 4 года назад

    Спасибо.

  • @directorys
    @directorys 2 года назад +1

    Я так понял, что с помощью define можно такое на куивертить с синтаксисом, что получится в стуктуре всё тот же cpp, но выглядеть он будет как что-то совсем извращенное. Написав такой вот define хэдэр можнл юзать свои кастом плюсы.
    Прикольно)

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

      Да) Только так никто обычно не делает. У препроцессора совсем другая задача: адаптация кода программы для сборки различными компиляторами, а так же упрощение использование сложно-замороченного кода конечными юзерами. Например, в тестовых фреймворках наподобие gtest, что бы создать юнит-тест, вы пишете что-то вроде: UNIT_TEST(Sample) { код теста } На самом деле макрос UNIT_TEST разворачивается во что-то очень сложно-замороченное. Но вам, пользователю, об этом думать не нужно. Вы можете просто писать: UNIT_TEST и не заморачиваться.

  • @ЯрославГоловко-ф6и
    @ЯрославГоловко-ф6и 4 года назад

    спасибо

  • @rubiks7196
    @rubiks7196 6 лет назад +1

    Begin end паскалик любимый точней приевшийся

  • @КОД-ш8у
    @КОД-ш8у 5 лет назад +3

    А в ООП макрос тоже так же функционирует или есть свои нюансы?

  • @alexandrsargsyan2202
    @alexandrsargsyan2202 2 года назад

    spasibo

  • @gunnargunaxe
    @gunnargunaxe 5 лет назад +7

    Спасибо за разъяснения, всё примерно так и думал. Но вот недавно я решил исследовать библиотеки stm32 и у меня мозг просто закипел от этих дефайнов. Там дефайн на дефайне и дефайном погоняет. Один заменяет другой, другой заменяет третий, третий заменяет какую то функцию которая находится в другом хэдере и в котором то же макросы макросы макросы!!! бл скаа как это читать? как это работает вообще?

    • @comachine
      @comachine 2 года назад +1

      даа, ебаные завёрнутые клубки, которые нужно разворачивать, ляпота хавхавха

  • @melonystalker3714
    @melonystalker3714 2 года назад +2

    Если я подключаю библиотеку к программе и использую из нее только одну функцию, остальные подгружаются или нет? Как это влияет на производительность?

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

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

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

      Вы спрашиваете: *Как это влияет на производительность?* Никак.

  • @ДмитрийКошелев-п5э
    @ДмитрийКошелев-п5э 4 года назад +2

    В main скобки забыл заменить на begin и end!

  • @asker7085
    @asker7085 9 месяцев назад

    👍👍👍

  • @DigitRoach
    @DigitRoach 3 года назад

    Добро пожаловать в 2021 здесь господствует Pascal++

  • @SAD-oe9lw
    @SAD-oe9lw 4 года назад +2

    7:06 - это что за комбинация клавиш позволяет так делать??

    • @lacklacktriplehack4174
      @lacklacktriplehack4174 4 года назад +3

      Выделите фрагмент кода, который хотите закоментировать и нажмите Ctrl + K, C (удерживая Ctrl нажать K, затем C). Для снятия комментариев нужно выделить закомментированный кусок и нажать Ctrl + K, U.
      так же есть такое ценное ОЧЕНЬ даже ценное умение для программиста как УМЕНИЕ ГУГЛИТЬ
      если не умеешь гуглить учись если не хочешь учится то изучать программирование нет смысла

    • @SAD-oe9lw
      @SAD-oe9lw 4 года назад +1

      @@lacklacktriplehack4174 Гуглить я умею. Нашёл уже давно информацию. Написал комментарий для других, кто тоже интересуется этим вопросом. Наткнутся на мой коммент и увидят твой ответ

    • @lacklacktriplehack4174
      @lacklacktriplehack4174 4 года назад

      @@SAD-oe9lw ну просто ниже уже дали ответ

  • @itsallride9847
    @itsallride9847 4 года назад +1

    Ну точно паскаль(begin и end);

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

    С begin и end - вообще проблем не будет, если не использовать: "using namespace std;" даже создатель крестов об этом говорил, что не очень хорошо использовать это.

  • @MrNichosik
    @MrNichosik 7 месяцев назад

    а если у меня константа inline, которая тоже при компиляции подставляется в коде, то в чём тогда отличие? Кроме того, что компилятор может игнорировать inline

  • @sultanaliyev4887
    @sultanaliyev4887 3 года назад

    Канал невероятно крутой, кто-нибудь может поделиться подобным же каналом по Пайтону или Джава. Можно и платные курсы. Можно и на немецком языке.

  • @WebArchitector
    @WebArchitector 6 лет назад +2

    Спасибо, есть вопрос, как вы так быстро комментируете код ? Подскажите пожалуйста.

    • @heathcliff3440
      @heathcliff3440 6 лет назад +3

      Ctrl+K, Ctrl+C, чтобы раскомментировать - Ctrl K, Ctrl+U

  • @viktort9326
    @viktort9326 4 года назад +2

    Если мы не будем использовать "using namespace std" , а прописывать "std::begin", то мы ведь не столкнёмся с этой проблемой? Вообще многие не рекомендую использовать "using namespace std"

    • @МихаилПолшков-х8м
      @МихаилПолшков-х8м 2 года назад

      почему

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

      @@МихаилПолшков-х8м Проф. программисты действительно предпочитают явно указывать пространство имен по ряду причин: 1 - улучшает читабельность кода. 2- защита от коллизий имен.

  • @НикитаСеребряков-е1в
    @НикитаСеребряков-е1в 4 года назад +1

    Константа, которая является макроопределением

  • @meyosh8734
    @meyosh8734 4 года назад +3

    Захотелось написать крестики нолики и даже получилось. Сначала сделал уродскую через goto и тд. Потом довел до такого варианта:
    #include
    #include
    #include
    using namespace std;
    int main();
    void win()
    {
    string a;
    cout a;
    main();
    }
    void lose()
    {
    string a;
    cout a;
    main();
    }
    void draw(char arr[][3])
    {
    system("cls");
    for (int i = 0; i < 3; i++)
    {
    for (int j = 0; j < 3; j++)
    {
    cout > pos2;
    pos1 -= 1;
    pos2 -= 1;
    while ((pos1 < 0 || pos2 < 0 || pos1 > 3 || pos2 > 3) || (arr[pos1][pos2] == 'x') || (arr[pos1][pos2] == '0'|| (arr[pos1][pos2] == ' ')))
    {
    cout > pos1 >> pos2;
    pos1 -= 1;
    pos2 -= 1;
    } arr[pos1][pos2] = 'x';
    }
    void pc(char arr[][3])
    {
    int pos1 = 1, pos2 = 1;
    while (arr[pos1][pos2] != '*')
    {
    pos1 = rand() % 3 + 1;
    pos2 = rand() % 3 + 1;
    pos1 -= 1;
    pos2 -= 1;
    } arr[pos1][pos2] = '0';
    }
    void check(char arr[][3])
    {
    if (arr[0][0] == 'x' && arr[1][0] == 'x' && arr[2][0] == 'x') //
    {
    // *
    win(); // *
    } // *
    //
    if (arr[0][0] == 'x' && arr[0][1] == 'x' && arr[0][2] == 'x') //
    {
    // * * *
    win(); //
    } //
    //
    if (arr[0][2] == 'x' && arr[1][2] == 'x' && arr[2][2] == 'x') //
    {
    // *
    win(); // *
    } // *
    //
    if (arr[2][0] == 'x' && arr[2][1] == 'x' && arr[2][2] == 'x') //
    {
    //
    win(); //
    } // * * *
    if (arr[0][1] == 'x' && arr[1][1] == 'x' && arr[2][1] == 'x') //
    {
    // *
    win(); // *
    } // *
    //
    if (arr[1][0] == 'x' && arr[1][1] == 'x' && arr[1][2] == 'x') //
    {
    //
    win(); // * * *
    } //
    //
    if (arr[0][0] == 'x' && arr[1][1] == 'x' && arr[2][2] == 'x') //
    {
    // *
    win(); // *
    } // *
    //
    if (arr[2][0] == 'x' && arr[1][1] == 'x' && arr[0][2] == 'x') //
    {
    // *
    win(); // *
    } // *
    if (arr[0][0] == '0' && arr[1][0] == '0' && arr[2][0] == '0') //
    {
    // *
    lose(); // *
    } // *
    //
    if (arr[0][0] == '0' && arr[0][1] == '0' && arr[0][2] == '0') //
    {
    // * * *
    lose(); //
    } //
    //
    if (arr[0][2] == '0' && arr[1][2] == '0' && arr[2][2] == '0') //
    {
    // *
    lose(); // *
    } // *
    //
    if (arr[2][0] == '0' && arr[2][1] == '0' && arr[2][2] == '0') //
    {
    //
    lose(); //
    } // * * *
    if (arr[0][1] == '0' && arr[1][1] == '0' && arr[2][1] == '0') //
    {
    // *
    lose(); // *
    } // *
    //
    if (arr[1][0] == '0' && arr[1][1] == '0' && arr[1][2] == '0') //
    {
    //
    lose(); // * * *
    } //
    //
    if (arr[0][0] == '0' && arr[1][1] == '0' && arr[2][2] == '0') //
    {
    // *
    lose(); // *
    } // *
    //
    if (arr[2][0] == '0' && arr[1][1] == '0' && arr[0][2] == '0') //
    {
    // *
    lose(); // *
    } // *
    }
    int main()
    {
    cout

    • @meyosh8734
      @meyosh8734 4 года назад

      #include
      #include
      #include
      using namespace std;
      void win()
      {
      cout 3 || pos2 > 3) ||(arr[pos1][pos2]=='x') || (arr[pos1][pos2] == '0'))
      {
      cout > pos1 >> pos2;
      pos1 -= 1;
      pos2 -= 1;
      } arr[pos1][pos2 ] = 'x';

      }
      void change2(char arr[][3])
      {
      int pos1, pos2;
      cout > pos1 >> pos2;
      pos1 -= 1;
      pos2 -= 1;
      while ((pos1 < 0 || pos2 < 0 || pos1 > 3 || pos2 > 3) || (arr[pos1][pos2] == 'x') || (arr[pos1][pos2] == '0'))
      {
      cout > pos1 >> pos2;
      pos1 -= 1;
      pos2 -= 1;
      } arr[pos1][pos2] = '0';
      }
      void pc(char arr[][3])
      {
      int pos1=1, pos2=1;


      while (arr[pos1][pos2]!='*')
      {
      pos1 = rand() % 3 + 1;
      pos2 = rand() % 3 + 1;
      pos1 -= 1;
      pos2 -= 1;
      } arr[pos1][pos2] = '0';
      }
      void check(char arr[][3],bool &z)
      {
      if (arr[0][0] == 'x' && arr[1][0] == 'x' && arr[2][0] == 'x') //
      {
      z = false; // *
      win(); // *
      } // *
      //
      if (arr[0][0] == 'x' && arr[0][1] == 'x' && arr[0][2] == 'x') //
      {
      z = false; // * * *
      win(); //
      } //
      //
      if (arr[0][2] == 'x' && arr[1][2] == 'x' && arr[2][2] == 'x') //
      {
      z = false; // *
      win(); // *
      } // *
      //
      if (arr[2][0] == 'x' && arr[2][1] == 'x' && arr[2][2] == 'x') //
      {
      z = false; //
      win(); //
      } // * * *
      if (arr[0][1] == 'x' && arr[1][1] == 'x' && arr[2][1] == 'x') //
      {
      z = false; // *
      win(); // *
      } // *
      //
      if (arr[1][0] == 'x' && arr[1][1] == 'x' && arr[1][2] == 'x') //
      {
      z = false; //
      win(); // * * *
      } //
      //
      if (arr[0][0] == 'x' && arr[1][1] == 'x' && arr[2][2] == 'x') //
      {
      z = false; // *
      win(); // *
      } // *
      //
      if (arr[2][0] == 'x' && arr[1][1] == 'x' && arr[0][2] == 'x') //
      {
      z = false; // *
      win(); // *
      } // *
      if (arr[0][0] == '0' && arr[1][0] == '0' && arr[2][0] == '0') //
      {
      z = false; // *
      lose(); // *
      } // *
      //
      if (arr[0][0] == '0' && arr[0][1] == '0' && arr[0][2] == '0') //
      {
      z = false; // * * *
      lose(); //
      } //
      //
      if (arr[0][2] == '0' && arr[1][2] == '0' && arr[2][2] == '0') //
      {
      z = false; // *
      lose(); // *
      } // *
      //
      if (arr[2][0] == '0' && arr[2][1] == '0' && arr[2][2] == '0') //
      {
      z = false; //
      lose(); //
      } // * * *
      if (arr[0][1] == '0' && arr[1][1] == '0' && arr[2][1] == '0') //
      {
      z = false; // *
      lose(); // *
      } // *
      //
      if (arr[1][0] == '0' && arr[1][1] == '0' && arr[1][2] == '0') //
      {
      z = false; //
      lose(); // * * *
      } //
      //
      if (arr[0][0] == '0' && arr[1][1] == '0' && arr[2][2] == '0') //
      {
      z = false; // *
      lose(); // *
      } // *
      //
      if (arr[2][0] == '0' && arr[1][1] == '0' && arr[0][2] == '0') //
      {
      z = false; // *
      lose(); // *
      } // *
      }
      int main()
      {
      bool z = true;
      string answer;
      int players;
      setlocale(0, "");
      srand(time(NULL));

      start:
      char arr[3][3]{ {'*','*','*'},{'*','*','*'},{'*','*','*'} };
      cout > players;
      draw(arr);
      change1(arr);
      check(arr,z);
      draw(arr);
      if (z == false)
      {
      goto fin;
      }
      if (players == 1)
      {
      pc(arr);
      } else change2(arr);
      draw(arr);
      check(arr, z);
      if (z == false)
      {
      goto fin;
      }
      change1(arr);
      draw(arr);
      check(arr, z);
      if (z == false)
      {
      goto fin;
      }
      if (players == 1)
      {
      pc(arr);
      }
      else change2(arr);
      draw(arr);
      check(arr, z);
      if (z == false)
      {
      goto fin;
      }
      change1(arr);
      draw(arr);
      check(arr, z);
      if (z == false)
      {
      goto fin;
      }
      if (players == 1)
      {
      pc(arr);
      }
      else change2(arr);
      draw(arr);
      check(arr, z);
      if (z == false)
      {
      goto fin;
      }
      change1(arr);
      draw(arr);
      check(arr, z);
      if (z == false)
      {
      goto fin;
      }
      if (players == 1)
      {
      pc(arr);
      }
      else change2(arr);
      draw(arr);
      check(arr, z);
      if (z == false)
      {
      goto fin;
      }
      change1(arr);
      draw(arr);
      check(arr, z);
      if (z == false)
      {
      goto fin;
      }
      cout

    • @Ivan-Shyriaiev
      @Ivan-Shyriaiev 4 года назад

      Я тестанул, прикольно ;)

    • @meyosh8734
      @meyosh8734 4 года назад +1

      @@Ivan-Shyriaiev глупо такой программой хвастаться, но я старался)

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

      @@meyosh8734 круто! единственно еще бы объяснялку по координатам для игрока вначале)

  • @alexandrsargsyan2202
    @alexandrsargsyan2202 2 года назад

    👍👍👍🤘🤘🤘🤘🤘

  • @TimurProgramist
    @TimurProgramist 24 дня назад

    теперь я могу создать прототип питона на c++

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

    1:40 Вы подключили заголовок. Подключение заголовка так и называется: "подключением заголовка", и не имеет никакого отношения к подключению библиотек.

    • @sleepyNovember_project
      @sleepyNovember_project 11 месяцев назад

      А почему тут не надо указывать ".h"?

    • @princessmary5556
      @princessmary5556 11 месяцев назад +1

      ​@@sleepyNovember_project По одной из версий, в именах стандартных заголовков отсутствует расширение, что бы подчеркнуть различие между пользовательскими заголовками и стандартными. Пользовательские заголовки - это всегда файлы. А вот стандартные заголовки, строго говоря, файлами быть не обязаны.

    • @sleepyNovember_project
      @sleepyNovember_project 11 месяцев назад

      @@princessmary5556 благодарю за такое пояснение!

  • @blackgolddev4023
    @blackgolddev4023 5 лет назад

    Получается когда уже дело доходит до компиляции то вместо макроса компилятор видит уже сразу значение? а когда переменная то компилятор видит адрес переменно потом идёт по адресу и только после всего этого берёт значение?

    • @Ivan-Shyriaiev
      @Ivan-Shyriaiev 4 года назад

      Получается так ...

    • @Сергей-т9д7в
      @Сергей-т9д7в 3 года назад

      Компилятор не может видеть адрес, так как он выделяется уже скомпилированной переменной.

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

    Почему не пишется знак = ...? PI = 3.14

  • @Sooderone
    @Sooderone 6 месяцев назад

    🧠

  • @Viamsupervadetvadens
    @Viamsupervadetvadens 7 лет назад +1

    up

  • @DarkdalV
    @DarkdalV 6 лет назад

    а если std::begin()? всеравно заменят?

    • @SimbaYouTubeChannel
      @SimbaYouTubeChannel 6 лет назад +1

      здаров чувк, да, препроцессор пробежится по всему коду и где встретит слово begin заменит абсолютно все на то, что было задано ему в #define

  • @Обучение-е2щ
    @Обучение-е2щ 3 года назад +1

    шифровать свой код можно))

  • @smsolt6949
    @smsolt6949 5 лет назад +1

    Словами не передать как я благодарен автору канала. Благодаря вам у меня есть шанс закончить шарагу.
    ...
    cout

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

    1:06 Вы говорите о подключении файла, но при этом указываете на стандартный заголовок. Здесь вы допускаете грубую ошибку. Согласно правилам языка с++, стандартные заголовки предоставляются реализацией, и формально, вообще не являются файлами.

  • @biscvie
    @biscvie 2 года назад

    +

  • @olegbocharnikov950
    @olegbocharnikov950 6 лет назад +2

    ВАУ!!! ПРОГРАММИРОВАТЬ МОЖНО ПО РУССКИ
    #include"pch.h"
    #include
    #include
    #include
    #define pi 3.14
    #define начало {
    #define конец }
    #define вывод cout

  • @lmrbzv
    @lmrbzv 4 года назад

    Ну шо пацаны, погнали свои недоЯПы писать?)

  • @vladimirdiadichev6140
    @vladimirdiadichev6140 7 лет назад +5

    Спасибо

  • @АртурГребешков-к6ж
    @АртурГребешков-к6ж 6 лет назад +2

    Спасибо!

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

    спасибо

  • @КлешОфКланс-я3в
    @КлешОфКланс-я3в 4 года назад

    Спасибо

  • @edgull_tlt
    @edgull_tlt 3 года назад

    Спасибо