Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Пользовательские функции в C: пошаговое руководство

Пользовательские функции в C: пошаговое руководство

В этом руководстве вы научитесь создавать, прототипировать и использовать пользовательские функции в C, с наглядными примерами.

Что такое функция?

Функция — это автономный блок кода, выполняющий конкретную задачу. C позволяет определять свои функции, называемые пользовательскими, для инкапсуляции логики, которую можно переиспользовать по всей программе.

Пример сценария

Представьте, нужно создать круг, а затем раскрасить его в зависимости от радиуса и выбранного цвета. Это можно решить двумя пользовательскими функциями:


Пример: Сложение двух целых чисел

Ниже — простая программа, складывающая два целых числа через пользовательскую функцию addNumbers().

#include <stdio.h>
int addNumbers(int a, int b); // прототип функции

int main(void) {
    int n1, n2, sum;
    printf("Enter two numbers: ");
    scanf("%d %d", &n1, &n2);
    sum = addNumbers(n1, n2); // вызов функции
    printf("sum = %d\n", sum);
    return 0;
}

int addNumbers(int a, int b) // определение функции
{
    int result = a + b;
    return result; // оператор return
}

Прототип функции

Прототип функции объявляет имя, возвращаемый тип и параметры, информируя компилятор о существовании функции до её определения. Тело функции не содержит.

Синтаксис

returnType functionName(type1 argument1, type2 argument2, ...);

В примере int addNumbers(int a, int b); сообщает компилятору, что addNumbers возвращает int и принимает два параметра int.

Если пользовательская функция определена перед main(), прототип не обязателен.


Вызов функции

Управление передаётся функции вызовом с необходимыми аргументами.

Синтаксис

functionName(argument1, argument2, ...);

В примере addNumbers(n1, n2); передаёт значения n1 и n2 в функцию.


Определение функции

Определение содержит фактический код, выполняемый при вызове.

Синтаксис

returnType functionName(type1 argument1, type2 argument2, ...) {
    // тело функции
}

При вызове addNumbers компилятор переходит к этому блоку, выполняет сложение и возвращает результат.


Передача аргументов

Аргументы — фактические значения, передаваемые функции при вызове. Параметры функции получают эти значения.

Пользовательские функции в C: пошаговое руководство

Типы аргументов должны совпадать с типами параметров; иначе компилятор выдаст ошибку. Например, если n1 — char, соответствующий параметр a тоже должен быть char.

Функции также могут вызываться без аргументов, если они не требуются.


Оператор return

Ключевое слово return завершает функцию и опционально возвращает значение вызывающему коду.

Синтаксис

return expression;

В примере return result; отправляет сумму обратно в main(), где она сохраняется в sum.

Пользовательские функции в C: пошаговое руководство

Убедитесь, что возвращаемый тип совпадает с объявленным типом возврата функции.

Для глубокого понимания передачи аргументов и возвращаемых значений изучите продвинутые концепции функций C.

Способы передачи аргументов

СпособСинтаксисКогда использовать
По значениюfunc(int x)Малые типы, когда не нужно менять оригинал
По указателюfunc(int* x)Нужно изменить оригинал, большие структуры, опциональные параметры (NULL)
По ссылке (C++)func(int& x)Только C++, безопаснее указателей

Рекурсивные функции

Функция, вызывающая сама себя — рекурсивная. Требует базового случая для завершения. Пример — факториал:

int factorial(int n) {
    if (n <= 1) return 1;
    return n * factorial(n - 1);
}

Язык C

  1. Четыре проверенных паттерна пользовательских функций в C
  2. Как передавать одномерные и двумерные массивы в функции в C — практическое руководство
  3. Стандартные библиотечные функции в C: практическое руководство
  4. Освоение лямбда-функций Python: практические примеры и лучшие практики
  5. Мастерство функций в Verilog для эффективного RTL дизайна
  6. Функции в C: объявление, определение, вызов, аргументы (по значению и по ссылке), рекурсия
  7. Битовые поля в C: компактное хранение флагов и малых целых чисел
  8. Освоение ввода-вывода файлов в C: создание, открытие и управление файлами
  9. Функции с переменным числом аргументов в C: практическое руководство
  10. Функции в MATLAB: определение, рабочая область, входные и выходные аргументы