次のmain.cファイルがあります。
#include <stdio.h>
#include <stdlib.h>
#include <wctype.h>
#include "lista.h"
int main(int argc, char *argv[])
{
    struct nod *root = NULL;
    root = init(root);
    return 0;
}
そしてlista.h :
#ifndef LISTA_H_INCLUDED
#define LISTA_H_INCLUDED
#include "lista.c"
typedef struct nod
{
    int Value;
    struct nod *Next;
}nod;
nod* init(nod *);
void printList(nod *);
#endif // LISTA_H_INCLUDED
最後にlista.cは次のとおりです。
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include "lista.h"
nod* init(nod *root)
{
    root = NULL;
    return root;
}
void printList(nod *root)
{
    //We don't want to change original root node!
    nod *aux = root;
    printf("\n=== Printed list =====\n");
    while (aux != NULL)
    {
        printf(aux->Value);
        aux = aux->Next;
    }
    puts("\n");
}
ヘッダー ファイルをインクルードした後でも、次の 3 つのエラーが表示されます: 不明な型名 'nod'
lista.h の typedef を lista.c で表示するにはどうすればよいですか?
ここで何が起こっているのかわかりません。