У меня постоянно возникает проблема с компилятором при попытке использовать struct
, который я определил в заголовочном файле.
У меня есть два файла: main.c
:
#include <stdio.h>
#include <stdlib.h>
#include "node.h"
int main(){
struct NODE node;
node.data = 5;
printf("%d\n", node.data);
return 0;
}
, а также node.h
:
#ifndef NODE
#define NODE
struct NODE{
int data;
struct NODE *next;
};
#endif
Я писал небольшую программу, чтобы попрактиковаться в модульном программировании на C, но я получаю следующую ошибку компилятора:
node.h:5:21: error: expected ‘{’ before ‘*’ token
struct NODE *next;
^
Я получил main.c
, чтобы скомпилировать и сделать то, что я хотел бы, когда я определяю struct
непосредственно в файле main.c
, но по какой-то причине он не будет работать, если я поместу определение в файл заголовка, а затем попробуйте включить его в main.c
. Это очень расстраивает, и я уверен, что это мелочь, но может кто-нибудь сказать мне, почему это не работает? Из того, что я читал, я должен быть в состоянии сделать это, нет?
Большое спасибо!