# Функции

## Объяснение

Функции **выполняют действие** и/или **возвращают значение**, основанное на аргументах, приведенных в скобках, которые идут после имени функции. Если функция должна просто выполнять действие, она написана так:

```c
function(arg0, arg1, arg2...);
```

Но если он также возвращает что-то после выполнения действия, и вы хотите сохранить его в переменной, вы делаете это так:

```c
variable = function(arg0, arg1, arg2...);
```

Функция может и не может содержать аргументы.

## Примеры

```c
    instance_create_layer(x, y, layer, object);
//Что он делает: создает экземпляр объекта в позиции x, y внутри слоя
    instance_create_layer(48, 48, "Instances", obj_enemy);
//Что он возвращает: ID экземпляра созданного экземпляра
    enemy_id = instance_create_layer(48, 48, "Instances", obj_enemy); 

    draw_sprite(sprite, sub-image, x, y); 
//Что он делает: Рисует суб-изображение спрайта в позиции x, y
    draw_sprite(spr_ball, 0, x+5, y+5); 
//Ничего не возвращает.

    random(number); 
//Ничего не делает.
//Что он возвращает: возвращает случайное действительное число между 0 и числом.
    speed = random(5);
```
