Как вынести функцию в отдельный файл?

Для того чтобы вынести функцию в отдельный файл нам понадобится разбить нашу программу на несколько частей.

Обычно это делают так:

  • Прототипы функций помещаются в заголовочный файл (.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)

Создаем заголовочный файл и помещаем туда прототип нашей функции:

Создание заголовочного файла (.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;
}

Проверяем:

Проверяем код на работоспособность

Вуаля, все работает.