Вынести функцию в отдельный файл C/C++
Как вынести функцию в отдельный файл?
Для того чтобы вынести функцию в отдельный файл нам понадобится разбить нашу программу на несколько частей.
Обычно это делают так:
- Прототипы функций помещаются в заголовочный файл (.h)
- Реализации (определения) функций помещаются в отдельный .cpp файл
- В файле (с main()), где вызываются функции, подключается файл с прототипами (.h)
Теперь разберем как это сделать на примере.
Допустим у нас есть программа в которой мы запрашиваем X, а на экран должно вывестись X²
#include <stdio.h>
#include <conio.h>
#include <locale.h>
int x;
int main() {
setlocale(0, "Russian");
printf("Введите X\n");
scanf_s("%d", & x); //тут будем вызывать нашу функцию _getch();
return 0;
}
1. Заголовочный файл (.h)
Создаем заголовочный файл и помещаем туда прототип нашей функции:
Обязательно используем конструкцию для защиты от множественных включений в один файл:
#ifndef Header_h
#define Header_h
//Код
#endif //Header
Получится:
#ifndef Header_h
#define Header_h
void func(); //прототип функции
#endif //Header
2. Реализация функции (.c/.cpp)
Создаем отдельный .cpp файл (function.cpp):
Пишем реализацию функции:
#include <stdio.h>
extern int x;
void func() {
printf("X^2 будет: %d", x * x); //тело функции
}
3. Подключение заголовочного файла (.h)
Открываем файл где располагается main(), и подключаем заголовочный файл (.h) в нашем случае Header.h:
#include "Header.h"
Затем вызываем функцию:
func();
Получился вот такой main.cpp:
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include "Header.h"
int x;
int main() {
setlocale(0, "Russian");
printf("Введите X\n");
scanf_s("%d", & x);
func();
_getch();
return 0;
}
Проверяем:
Вуаля, все работает.