Разделить один большой .c файл на несколько - C (СИ)
Формулировка задачи:
Просьба помочь разделить один большой .c файл на несколько.
Цели:
1. Разделить куски кода на функции
2. Вынести большие функции в отдельные файлы
3. Остальные мелкие функции вынести в один .c файл
У меня нет полного понимания как решить правильно следующие задачи:
1. Организация заголовочных файлов.
2. #include они должны быть в файле с main() или в файлах, в которых описаны функции?
3. Передача аргументов в функции.
4. Наследование динамических переменных или массивов, инициализация в правильных местах.
Буду отдельно благодарен за ссылку на маленькую программу на Си, в которой хорошо организованы исходники.
Покажите, пожалуйста, как приведённый шаблон преобразовать в отдельные .c и .h файлы:
#include <stdio.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <time.h>
#include <sys/time.h>
long long small_function_1(void);
void small_function_2(size_t **, size_t *);
float small_function_3(size_t *, float *, size_t *, bool);
int main(int argn, char *argv[])
{
// Это часть кода, которая может стать первой большой функцией и быть вынесенной в первый отдельный .c файл
FILE *some_variable_1;
ptrfile=fopen(argv[1],"r+");
.
.
printf ("%zd",small_function_1());
.
.
// Это конец первой части кода
// Это часть кода, которая может стать второй большой функцией и быть вынесенной во второй отдельный .c файл
size_t *some_variable_2;
for (size_t i=0; i < 1000; ++i) {
.
.
float some_variable_3 = small_function_3(some_array_1,some_array_2,&,true);
.
.
}
.
small_function_2(&some_array_3,&size_of_some_array_3);
.
.
// Это конец второй части кода
return(EXIT_SUCCESS);
}
// Нескольких мелких функций могут быть вынесены в один общий .с файл
long long small_function_1(void) {
return some_some_variable_1;
}
void small_function_2(size_t **, size_t *) {
}
float small_function_3(size_t *, float *, size_t *, bool) {
return facts[0];
}Решение задачи: «Разделить один большой .c файл на несколько»
textual
Листинг программы
int num = 99;
Объяснение кода листинга программы
- В первой строке объявлена переменная
numтипа int и инициализирована значением 99.