исчерпывающее руководство по основам программирования на C для моих товарищей по рыбной ловле из 42 берлинских школ, 42 школ и всех, кто хочет получить дополнительные очки в общих знаниях в области программирования.
Что такое функция?
Вообще говоря, функция — это блок кода, выполняющий определенную задачу. Считайте это глаголом в английской грамматике. Глагол выполняет действие, Как и скромная функция.
Функция в C состоит из следующих частей:
Datatype Name (Parameters as Input for function)
Мы обсудим упомянутые части далее.
Так же, как в грамматике глагол выполняет действие, что означает «ОТДЕЛЬНОЕ действие имеет имя», каждая функция должна иметь допустимое, понятное, не требующее пояснений имя, вести себя как ваш ребенок, вы дать вашему ребенку хорошее имя право?
SINGLE (почему выделено жирным шрифтом)?
Чтобы ответить на этот вопрос, я предлагаю вам подумать еще немного, что делает духовка? Как насчет Холодильника?
Духовка: инструмент, единственная цель которого — приготовление пищи. Верно? "ГОТОВИТЬ"
Холодильник : инструмент, единственной целью которого является сохранение съестных припасов холодными/свежими. «СОХРАНЯЙ ХОЛОД»
Одна из лучших практик — проектировать функции таким образом, чтобы они выполняли только одно действие, или, скажем, теперь это стандарт!
Предположим, вам нужно создать программу для получения оценок учащихся от пользователя и затем распечатайте их на экране. Вы можете создать две функции для решения этой проблемы:
- Создайте функцию диспетчера ввода
- Создайте функцию принтера
но почему? Ну, краткий ответ будет таков: ваша духовка чистит вашу квартиру? Он также сохраняет вашу еду холодной? Имеет ли это? Если это так, пожалуйста, пришлите мне ссылку на Amazon, которую я хотел бы получить: D
правильный ответ: с целью повторного использования,поэтому позже в вашей программе, если вам нужно что-то напечатать снова, вы можете легко вызвать функцию принтера, представьте, если бы вы определили только одну функцию для обработки обоих входов получение и печать, что произойдет?
Таким образом, разделение сложной постановки задачи на более мелкие части делает нашу программу простой для понимания и повторного использования.
Типы
В программировании на C есть два типа функций:
- Стандартные библиотечные функции
- Пользовательские функции
Стандартные библиотечные функции — это встроенные функции, уже доступные в C, и вы можете включить их в качестве заголовка в свою программу через #include<>
Пользовательские функции — это те, которые вы можете создавать в соответствии с вашими потребностями.
Категории… фу?!
У нас есть две категории в C или, скажем, C, как языки программирования общего назначения.
- Возвращаемые (возвращаемое значение) функции
- Невозвратные функции
Что значит возвратный? Почему мы вообще включаем оператор return в наши функции?
Чтобы ответить на этот вопрос, мы должны знать объем и продолжительность жизни функции в C.
Область действия функции начинается и заканчивается между { }, поэтому все, что существует между { }, строго принадлежит этой функции и только этой функции, поэтому, если у вас есть переменная с именем «index» во всех ваших функциях, они существуют только в их родительской функции. !
Срок жизни функции начинается с момента ее вызова до тех пор, пока она не завершит выполнение кода внутри нее. После того, как выполнение выполнено, все получает пуф из памяти, значения операции все.
Возвращаемые функции обязательно отправляют ответ туда, откуда они были вызваны.
Чтобы понять это, давайте рассмотрим очень простой пример: вам нужно, чтобы ваш друг посчитал количество машин перед домом.
В: Сколько машин перед домом?
Что вы ожидаете в качестве ответа? Естественно и определенно число, верно? Вы не ожидаете услышать слова «большая машина», «маленькая машина», «желтая машина» и т. д. вам нужно общее число, поэтому
А: напр. 6 автомобилей
так вы вызвали функцию (вашего друга) для подсчета количества машин, и он вам ответит, потому что вы его/его вызвали, и вернет вам число. Возвращать ответ — это то, что return делает в функции.
Тип возвращаемого значения должен быть точно таким же, как тип функции, поэтому мы можем сказать, что возвращаемое значение функции int должно быть значением int.
Int function_name()
{
//logic
.
.
.
return (the returned value of type int)
}
Невозвратные функции ничего не возвращают, их тип часто обозначается void .
Как правило, они в основном используются в двух сценариях:
- Функция, которая выводит информацию для чтения пользователем.
- Ссылки со «ссылочными» параметрами (например, массивы). Ссылочный параметр — это не копия входных данных, это «псевдоним» для того же сегмента в памяти, что и входные данные. Таким образом, любое изменение, вносимое в ссылочный параметр, фактически вносится в исходную переменную.
Чтобы понять это:
Когда вы передаете параметры возвращаемой функции, вы отправляете копию значения в функцию, исходное значение остается неповрежденным, но с передачей ссылки…
Звучит знакомо? Действительно! Вы правы, как Пойнтеры!
Надеюсь, вам понравилось читать этот пост, следите за обновлениями, дальше в строке это значение и почему * перед именами функций, указатели функций?! Посмотрим…
Спасибо за прочтение!