Я пытаюсь обнаружить ошибку, поэтому включил в свою программу некоторые следы. Проблема заключается в том, что после этого, он не компилируется, дает мне следующую ошибку:Ошибка компиляции: Fprintf throws parse error
../src/DR700_API.c:46: parse error before `*'
Я просто добавил fprintf в начале каждой функции:
fprintf(stdout,"_name_of_function_");
Комментируя все fprintf компилирует правильно, так что есть ошибка. Я не могу отказаться от них, так как хочу отслеживать другую ошибку во время выполнения.
Вот небольшой пример:
#include <stdio.h>
#include <stdlib.h>
ImprFunc *DR700_new()
{
fprintf(stdout,"DR700_new");
ImprFunc *impr = (ImprFunc *)malloc(sizeof(DR700_ImprFunc));
if (impr == NULL)
return NULL;
...
../src/DR700_API.c:46: parse error before `*'
../src/DR700_API.c:47: `impr' undeclared (first use in this function)
../src/DR700_API.c:47: (Each undeclared identifier is reported only once
../src/DR700_API.c:47: for each function it appears in.)
make: *** [../obj/DR700_API.o] Error 1
или добавить -std = c99 в флаговые сборки. Но для нового gcc он не является фактическим, поскольку он использует -std = c11 по умолчанию – alexanius
Я сделал это первым способом, и он работал нормально. Большое спасибо! – Joster