2016-05-31 10 views
1

Как мне связать два файла заголовка, которые зависят друг от друга с их c-файлами?Связывание нескольких файлов заголовков с c-файлами

Например у меня есть файл stack.h, который зависит от структуры, объявленной в linkedlist.h, а файл «stack.c» вызовы на функциях из linkedlist.c, которые зависят от обоих файлов заголовков. main.c зависит от обоих файлов заголовков

linkedlist.h

#include <stdio.h> 
#include <stdlib.h> 
#include "stack.h" 
struct listNode 
{ 
    int nodeValue; 
    struct listNode * next; 
}; 

typedef struct listNode listNode; 

stack.h

#include "linkedList.h" 
    typedef struct stack { 
     listNode *list; 
    }stack; 
+1

Я не уверен, что 'linkedlist.h' нуждается в * ничего * из' stack.h', основываясь исключительно на том, что вы здесь показали. – WhozCraig

+0

Я объявляю listNode * list. Может быть, мне нужно просто typedef структурировать его там, вместо того, чтобы пытаться включить linkedlist.h. – FreeStyle4

+2

Как я уже сказал, ничто в 'linkedlist.h' не ссылается и не требует * ничего * из' stack.h'. Противоположно, очевидно, не так; 'stack.h' явно нуждается в' linkedlist.h'. Но из того, что вы опубликовали, '#include" stack.h "' в 'linkedlist.h' совершенно бессмысленно. – WhozCraig

ответ

1

Как бы идти о связывании 2 заголовочные файлы, которые зависят друг от друга

Не надо. У вас никогда не должно быть такого сценария или ваш дизайн программы нарушен.

Для вашего конкретного примера кажется, что вы пытаетесь реализовать ADT стека, используя связанный список. Если это так, стек должен включать связанный список ADT, и все.