LINUX.ORG.RU

Ошибка в функции, возвращающей указатель на структуру...

 


0

1

Кусок из программы, где возникает ошибка:

//backend.c

#include "backend.h"
#include "const.h"


Node*
parse_file(gchar *filepath){
	return NULL;
}
...

//backend.h

Node* parse_file(gchar*);
...

//const.h

typedef enum{
	INPUT = 		1 << 0,
	OUTPUT = 	1 << 1,
	ASSIGN = 	1 << 2,
	WHILELOOP =       1 << 3,
	IFCOND = 	1 << 4,
	FORLOOP = 	1 << 5,
	OTHER = 	1 << 6
} BLOCKTYPE;


typedef struct node{
	BLOCKTYPE type;
	char data[20];
	
	struct node *block_above;
	struct node *block_below;
	struct node *block_temp;
} Node;

Получаю такую ошибку от компилятора:

cc -Wall -g -c backend.c
In file included from backend.c:1:
backend.h:3: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
backend.c:6: error: expected ‘)’ before ‘*’ token

Подскажите, в чём ошибка.



Последнее исправление: Evolve32 (всего исправлений: 1)

Node не объявлен в backend.h и backend.c. #include «const.h» спасёт мир.

quiet_readonly ★★★★
()
Ответ на: комментарий от qrck

Внутри backend.c придётся всё-таки включить файл const.h, чтобы вернуть какое-то осмысленное значение, отличное от NULL.

quiet_readonly ★★★★
()

О... Переместил const.h в backend.h и всё заработало. Прошу прощения за беспокойство

Evolve32
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.