The VEX Visual Studio Code Extension has replaced VEXcode Pro V5, which is now end-of-life.
VEXcode Blocks and VEXcode Text remain actively developed and supported for all VEX platforms.
Визначення функції
Тепер, коли ми розглянули кілька зразків, давайте розглянемо загальну форму визначення функції:
void function-name() {
Оголошення змінних тощо.
Вирази...
//явне повернення не потрібне.
}
Функція не повертає ні спеціальних значень, ні вхідних параметрів.
void назва-функції(змінна-типу-даних) {
Оголошення змінних тощо.
Вирази...
//явне повернення не потрібне.
}
Якщо вам потрібно кілька змінних, просто використовуйте "," як роздільник:
Функція повертає без спеціального значення, але з одним параметром.
void назва-функції(змінна-типу-даних, змінна-типу-даних тощо) {
Оголошення змінних тощо.
Вирази...
//явне повернення не потрібне.
}
Функція не повертає спеціального значення, але з більш ніж одним параметром.
void назва-функції(змінна-типу-даних, змінна-типу-даних тощо) {
Оголошення змінних тощо.
Вирази...
повернути повернене значення
}
Функція повертає значення певного типу даних із більш ніж одним вхідним параметром.
Тип поверненняфункції має збігатися з типом даних повернутого значення, яке повертає функція. Повернене значенняможе бути константою або змінною. Йому має передувати ключове слово «return.”
Наступні правила регулюють тип повернення:
- Обмежень на тип повернення майже немає, крім масиву. (Масив — це ще одна більш складна тема щодо створення даних. Це виходить за межі цієї статті, і тут не розглядатиметься.
- Якщо вказати, що тип повернення «void» означає, що значення, що повертається, не потрібне. Речення «повернути» є неявним. Це означає, що ви повинні явно вказати «return» у кінці функції «void».
Створення функції перед main() чи після?
Компілятор читає ваш файл зверху вниз. Отже, порядок має значення.
Візьмемо для прикладу просту функцію найбільшого спільного знаменника (НСЗ). Ви отримаєте помилку:використання неоголошеного ідентифікатора 'getGCD'
Насправді це вірно незалежно від того, чи це з main() чи іншого викликаючого функціонального блоку, тобто «викликаний функціональний блок» має передувати «викликаючому функціональному блоку».
Два можливі рішення:
int getGCD(int a, int b) {
int remainder = 1;
while(remainder > 0) {
remainder = a % b;
a = b;
b = remainder;
}
return a;
}
int main() {
Brain.Screen.printAt(5,60, “НСД ( %d, %d ) = %d”, getGCD(60, 100));
}
Перемістіть «викликану функцію» над «викликаючим функціональним блоком» у прикладі «main().»
int getGCD(int, int);
int main() {
Brain.Screen.printAt(5,60, "НСД( %d, %d ) = %d", getGCD(60, 100));
}
int getGCD(int a, int b) {
int remainder = 1;
while(remainder > 0) {
remainder = a % b;
a = b;
b = remainder;
}
return a;
}
Розмістіть прототип (також званий сигнатурою) функції перед «викликаючим функціональним блоком».
Що робити, якщо ви хочете модуляризувати функції в різних файлах?
Крок 1: Створіть заголовковий файл і помістіть прототип функції в цей файл.
наприклад, створити файл під назвою «myFuncs.h»
Вам потрібно «додати» цей заголовний файл у ваш проект перед компіляцією коду. Це дозволяє IDE VEXcode Pro V5 «знати» про включення цього нового файлу заголовка до того, як він почне створювати ваш проект.
Ось як:



У цьому файлі заголовка «common.h» (ви можете назвати будь-яку назву, якщо вона є буквено-цифровою без пробілів).
Крок 2: Створіть окремий файл cpp, наприклад, з назвою common.cpp

//це файл common.cpp
int getGCD(int a, int b) {
int remainder = 1;
while (remainder > 0) {
remainder = a % b;
a = b;
b = remainder;
}
return a;
}
Перемістіть функцію getGCD(...) у цей файл
#include "vex.h"
#include "common.h"
використання простору імен vex;
int main() {
vexcodeInit();
Brain.Screen.printAt(5,60, "НСД ( %d, %d ) = %d", getNSD(60, 100));
}
Тепер все, що ви маєте в основному файлі cpp, складатиметься з наступного
Посилання:https://api.vexcode.cloud/v5/html/namespacevex.html
Майбутні теми будуть розглянуті в більш розширених розділах бібліотеки VEX у майбутньому:
- Передача за значенням проти передачі за посиланням
- Передайте в масиві
- Проходять у складі