Проблема с определением функции
По информатике задали сделать программу на языке си, которая читает текстовый файл с кодом, а после записывает в другой текстовый файл все прототипы функций, которые нашёл. В целом код готов, но я не знаю как определить, что в строке находится именно функция, а не условный оператор или вызов переменной, помогите пожалуйста как лучше определять именно функцию. Ниже код, которым я определяю функцию:
void exam(FILE* prog, FILE* rez) {
if (prog == NULL || rez == NULL) {
return;
}
rewind(prog);
char line[256];
while (fgets(line, sizeof(line), prog) != NULL) {
if (strstr(line, ") {") != NULL || strstr(line, "){") != NULL) {
fputs(line, rez);
printf("Writing: %s", line);
}
}
}