Компилятор языка C создан однопроходовым (файлы с кодом читаются один раз) из-за малой памяти на ранних компьютерах. Когда компилятор доходит внутри main(){} до вызова функции foo(), компилятору нужно знать какие параметры брать: foo(), или foo(int, int), или foo(double, double), или что-то другое. Два варианта решения: или обьявить функцию foo сверху (раньше ее вызова из main), или подсказать компилятору, обьявив прототип (сигнатуру) функции.
Как я счастлив, что на ютубе есть хороший курс по с++. Обязательно отблагодарю автора, как мне принесет это первые плоды:3 Пока только ОГРОМНОЕ СПАСИБО!❤️
Прошло столько времени но эти уроки всё ещё актуальные! И хотя до этого видео я уже знал все предыдущие темы но всё равно продолжаю подчёркивать для себя что то новое, спасибо!
когда используешь много функций - тогда лучше сперва объявить все их прототипы, а потом инициализировать сами функции. Тогда не возникнет проблемы, когда из функции1 вызывается функция2, при том что функция2 объявлена позже функции1. попробуй поэкспериментировать сам,
0:14 - Создаем функцию cout 1:20 - Почему нельзя писать функцию после main() без прототипа 1:50 - Что такое прототипы функций? 2:17 - Как объявить прототип функции? 2:45 - Где объявляют прототип функции? 3:11 - Зачем нужны прототипы функций?
Изучал C++ в sololearn, чем дальше тем все хуже и хуже, перешёл к твоим видео, посмотрел и спокойно решил на изи твои задачи в sololearn, которые не мол
Уроки просто супер, очень благодарен автору.) Маленький вопрос: а можно ли писать что-то для заказчика на бесплатной версии Visual Studio?) Заранее спасибо.)
хотелось бы уточнить один момент. я в курсе про интерфейсы и для чего они нужны (практиковался с ними в юнити в свое время), но дойдя до прототипов у меня вопрос, в чем разница между прототипом и интерфейсом, ибо лично для меня они выполняют одну и ту же задачу
Очень нужна подсказка, я хочу изучать язык С но материалов по С++ больше, прототипы, математические операции, функции, библиотеки и прочее можно читать и смотреть с тех статей и видео где говорится о С++?
С одной стороны прототипы это несколько неудобно, с другой можно найти плюсы. Отсюда вопрос, можно ли как то связать объявление прототипа с самой функцией, для удобства нахождения её в редакторе?
Добрый день. Изучаю С++ по Вашим урокам. Спасибо большое за Вашу работу. Я еще не сталкивался с реальными проектами, поэтому возник вопрос, а зачем вызывать функцию до ее объявления? Это же как заливать бензин в автомобиль до того, как установили бензобак. Или это нормальная практика?
Уроки замечательные. Но я все равно не понял зачем нужны прототипы функций. Только для удобства - вдруг где-то что-то начнешь менять и начнутся проблемы с компилятором, и тут ты указываешь в начале проги прототипы и все снова работает. Я правильно думаю?
Здравствуйте! Возник такой вопрос: где найти коды для разных языков? Если я например выводить текст на украинском, на польском, на белорусском или на сербохорватском? Просто пробовал чисто по логике вместо "ru" писать "ua", но ничего не получилось.
"Объявлять", или по-другому говорят "декларировать" функции, переменные и т.д. Но вот чем отличается declaration от definition - я так и не врубаюсь, .. фигвам его знает, что этим пчелам жу-жу...
Бывает, что внутри этой функции есть вызов другой функции, которая тоже до мэйна расположена, но при этом ниже относительно функции, в которой она находится. Поэтому компилятор её не увидит.
@@qaz33291 а если у вас куча функций, которые вызывают эти же функции (между собой)? Никак у вас тогда не получится сделать так, чтобы все функции были видимыми. Допустим, внутри функции А есть вызов функции Б, которая ниже, а в функции Б - вызов функции А. Тогда компилятор на функцию А будет ругаться (встречена функция Б, которая ниже). Если поменять очередность этих функций, тогда компилятор будет ругаться на Б. И из такой ситуации выход один: объявить прототипы функций.
80 минут пары по программированию (лекция) за 6 минут, но тут намного понятнее и объясняется доступным языком, спасибо вам огромное за ваш труд)
Компилятор языка C создан однопроходовым (файлы с кодом читаются один раз) из-за малой памяти на ранних компьютерах. Когда компилятор доходит внутри main(){} до вызова функции foo(), компилятору нужно знать какие параметры брать: foo(), или foo(int, int), или foo(double, double), или что-то другое. Два варианта решения: или обьявить функцию foo сверху (раньше ее вызова из main), или подсказать компилятору, обьявив прототип (сигнатуру) функции.
Все кто сюда дошли, молодцы, и кстати ты топ, учусь у тебя, всё збс
Как успехи?
@@this.u программирование уже не интересует. Выгорел
Углубляюсь в науку :)
@@reloginn4911 Как-то быстро ты выгорел, но удачи тебе
@@this.u программирование не мое. Вот быстро и выгорел
@@reloginn4911 датасайнс?)
Как я счастлив, что на ютубе есть хороший курс по с++.
Обязательно отблагодарю автора, как мне принесет это первые плоды:3
Пока только ОГРОМНОЕ СПАСИБО!❤️
плоды как я вижу пока что не принес
@@Анатолий-э6ъ2г уже пол года работаю в этой сфере, зп пока конечно не большая. Надеюсь в следующем году до 250к повысят (щас 170)
@@kurinoski какой можете посоветовать материал после этого курса ?
что можешь посоветовать после этого курса?
А какая у вас конкретная сфера на плюсах?
случайно набрел сюда, но ты так четко и быстро, и голос приятный, так шо грех не подписаться
Была такая проблема, сидел выстраивал их в правильном порядке, задолбался. Спасибо за урок.
Пожалуйста!
я из 2021, и хотелось бы больше домашек, а автор этого канала просто гений и очень все хорошо и легко рассказывает
как успехи спустя год?
как успехи?)
спасибо за уроки!
Пожалуйста! =)
* Самые понятные, видео уроки по c++, на всём (RU) youtube *
И не только в RU но и во всем мире, если бы были версии уроков с переводом на другие языки
В 2024 году это до сих пор лучшие уроки по с++
Прошло столько времени но эти уроки всё ещё актуальные! И хотя до этого видео я уже знал все предыдущие темы но всё равно продолжаю подчёркивать для себя что то новое, спасибо!
Домашек мало, хотелось бы больше практики для усвоения материала!!!
#прототипыфункций #SimpleCode #урокипрограммирования
не понял, что будет если использовать много функций? нужно объявить много прототипов к ним, и еще что-то? какой нюанс?
когда используешь много функций - тогда лучше сперва объявить все их прототипы, а потом инициализировать сами функции. Тогда не возникнет проблемы, когда из функции1 вызывается функция2, при том что функция2 объявлена позже функции1. попробуй поэкспериментировать сам,
Насколько помню, в прототипе даже не обязательно объявлять переменные. Можно просто "void foo(int, int);".
да, ты в этом прав. у меня при объявлении даже ошибка вылазит и так не прокатит
Точно! А я и забыл!
Спасибо за лайфхак
Эх, 6 часов до зачета, должен успеть досмотреть плейлист)
Не зря учил Паскаль, теперь все интуитивно понятно. Наверное легче изучить Паскаль, а потом С++, чем сразу С++.
Если паскаль тебе не нужен, то и изучать его нет смысла.
Лучший контент от Сергея, спасибо!
Спасибо за урок.
Спасибо за урок
Каждый год на этот курс заходят от 1000+ пользователей, это показывает статус этого курса)
0:14 - Создаем функцию cout
1:20 - Почему нельзя писать функцию после main() без прототипа
1:50 - Что такое прототипы функций?
2:17 - Как объявить прототип функции?
2:45 - Где объявляют прототип функции?
3:11 - Зачем нужны прототипы функций?
слишком мало тайм кодов.. Надо больше!
как делаются таймкоды?
@@Hunter-pt6kn пишешь цифру, двоеточие и еще цифру - вот и все )
Супер)
Ребята,давайте завалим автора лайками и комментариями
Да он уже два года как видосы не пилит... к сожалению.
Хочу задонатить, куда можно?
Сюда www.donationalerts.ru/r/simplecode
Спасибо за качественные уроки.
Благодарю за поддержку!
Спасибо, Сергей! Очень интересно!
по лайкам понятно на сколько хороши видео.
cout
setlocate "LC_ALL"" ru";
Замечательные видео уроки по С++
Изучал C++ в sololearn, чем дальше тем все хуже и хуже, перешёл к твоим видео, посмотрел и спокойно решил на изи твои задачи в sololearn, которые не мол
Уроки просто супер, очень благодарен автору.) Маленький вопрос: а можно ли писать что-то для заказчика на бесплатной версии Visual Studio?) Заранее спасибо.)
Пожалуйста. Писать можно.
Спасибо огромное !
Спасибо, кратко и ясно
Жалко, что мало дз, но автор всё равно топ,старается, обьясняет понятно, лучший!
Согласен, я сам делаю задачки из прошлых уроков только на новые темы. На тему функций можно даже все задания переделать.
А где посмотреть домашки для практики?
Большое спасибо за уроки
вчера прям через силу смотрела, ничего не понимала, не лезло. Сегодня всё понятно :)
нет что бы компилятор научить искать функции так они костыли прикрутили
Спасибо!
Очень полезное видео!
спасибо
хотелось бы уточнить один момент. я в курсе про интерфейсы и для чего они нужны (практиковался с ними в юнити в свое время), но дойдя до прототипов у меня вопрос, в чем разница между прототипом и интерфейсом, ибо лично для меня они выполняют одну и ту же задачу
Очень нужна подсказка, я хочу изучать язык С но материалов по С++ больше, прототипы, математические операции, функции, библиотеки и прочее можно читать и смотреть с тех статей и видео где говорится о С++?
Спасибо Вам!
также в прототипе можно не указывать наименования переменных = foo(int, int);
С одной стороны прототипы это несколько неудобно, с другой можно найти плюсы. Отсюда вопрос, можно ли как то связать объявление прототипа с самой функцией, для удобства нахождения её в редакторе?
Simple Code: Я рад Вам! Сергей! Но такой вопросик: можете снимать уроки по WinApi
Великолепно!!!
thank you!
👍
Наконец-то я понял что значит прототип!)
Добрый день. Изучаю С++ по Вашим урокам. Спасибо большое за Вашу работу.
Я еще не сталкивался с реальными проектами, поэтому возник вопрос, а зачем вызывать функцию до ее объявления?
Это же как заливать бензин в автомобиль до того, как установили бензобак.
Или это нормальная практика?
В реальных проектах функции объявляются в отдельном файле. Реальные проекты и без того сложны, незачем их ещё усложнять порядком написания функций.
@@infinity-w Добрый день. Благодарю. )
Уроки замечательные. Но я все равно не понял зачем нужны прототипы функций. Только для удобства - вдруг где-то что-то начнешь менять и начнутся проблемы с компилятором, и тут ты указываешь в начале проги прототипы и все снова работает. Я правильно думаю?
Здравствуйте! Возник такой вопрос: где найти коды для разных языков? Если я например выводить текст на украинском, на польском, на белорусском или на сербохорватском? Просто пробовал чисто по логике вместо "ru" писать "ua", но ничего не получилось.
Как всегда сексуален!
36 осталось 168
Скажите как перевести консоль в win32? У меня консоль от visual sudio все медленно как перевести?
Спсб
Я чё то так задумался что просмотрел половину двух видео
Можно ли назвать это делегатом,но в с++?
В новом стандарте случайно не исправили этот недочёт языка?
Исправили вроде бы.
по Python уроки будут ?
В ближайшее время нет, но в будущем скорее всего да.
"Объявлять", или по-другому говорят "декларировать" функции, переменные и т.д.
Но вот чем отличается declaration от definition - я так и не врубаюсь, .. фигвам его знает, что этим пчелам жу-жу...
Декларировать это типа писать переменые с характеристиками но не выделять память , объявлять это выделять память для присвоения , так Я это понимаю
Изучаю c++ для создания игры своей мечты. Пишу комментарий, чтоб через 5 лет отвечать рандомным людям, как у меня успехи.
как успехи?
@@eazy8537 c++ уже более менее. Попутно изучаю blueprint, коплю деньги, чтобы собрать норм ПК для движка.
@@Киноварка Ооо иду по той же дороге к UE5, надеюсь ответишь, как успехи?)
не понятно ситуация когда эта может быть выгодно
Наверное, просто для удобства, когда этих самых функций очень много (и/или они вложены друг в друга).
Что делать если количество функции 100500?
0:12
up
Ths
компилятор нам ругаетя)
а смысл, если можно просто все функции обьявить до основной, и все?
Бывает, что внутри этой функции есть вызов другой функции, которая тоже до мэйна расположена, но при этом ниже относительно функции, в которой она находится. Поэтому компилятор её не увидит.
@@lehasamarsky2002 так если требуется создавать какую то функцию, создавай ее до той, в которой она используется и все
@@qaz33291 а если у вас куча функций, которые вызывают эти же функции (между собой)? Никак у вас тогда не получится сделать так, чтобы все функции были видимыми. Допустим, внутри функции А есть вызов функции Б, которая ниже, а в функции Б - вызов функции А. Тогда компилятор на функцию А будет ругаться (встречена функция Б, которая ниже). Если поменять очередность этих функций, тогда компилятор будет ругаться на Б. И из такой ситуации выход один: объявить прототипы функций.
4 дня до экзамена...
Пофиксили спустя 5 лет
Случайно вызвал внутри функции ее же. с удивлением обнаружил что получился бесконечный цикл)))
void foo()
{
cout
рекурсия
@@maxgo5792 Уже 6 месяцев оказывается прошло с тех пор как я прошёл эти уроки)
@@armm6437 я нашел недавно, нахожу моменты которых не знал. Автору респект за подачу
@@maxgo5792 я ещё C# курс прошёл, сейчас игры на Юнити делаю.
@@armm6437 круто, я на mql5 торговых роботов пишу... там С++ подобный код, вот и стало интересно
Спасибо за урок!
Спасибо за урок!