Функции


Функции C просты, но из-за того, как работает C, возможности функций немного ограничены.

  • Функции получают фиксированное или переменное количество аргументов.
  • Функции могут возвращать только одно значение или не возвращать никакого значения.

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

Функции определяются с использованием следующего синтаксиса:

int foo(int bar) {
    /* do something */
    return bar * 2;
}

int main() {
    foo(1);
}

Определенная нами функция fooполучает один аргумент - bar. Функция получает целое число, умножает его на два и возвращает результат.

Чтобы выполнить функцию fooс 1 в качестве аргумента bar, мы используем следующий синтаксис:

foo(1);

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

Правильный способ использования функций следующий:

/* function declaration */
int foo(int bar);

int main() {
    /* calling foo from main */
    printf("The value of foo is %d", foo(1));
}

int foo(int bar) {
    return bar + 1;
}

Мы также можем создавать функции, которые не возвращают значение, используя ключевое слово void:

void moo() {
    /* do something and don't return a value */
}

int main() {
    moo();
}

Упражнение

Напишите вызываемую функцию, print_bigкоторая получает один аргумент (целое число) и печатает строку x is big(где x - аргумент), если аргумент, переданный функции, является числом больше 10.

  • Важно : не забудьте добавить символ новой строки \nв конец строки printf.