我有两个头文件,stack.h
#ifndef __STACK_H__
#define __STACK_H__
typedef struct StackElement_
{
int value;
struct StackElement_ *next;
} StackElement, *Stack;
/*----------------------Prototypes----------------------*/
Stack new_stack();
void push_to_stack(Stack *, int);
int pop_stack(Stack *);
int peek_stack(Stack);
int stack_length(Stack);
void print_stack(Stack);
Bool is_empty_stack(Stack);
void clear_stack(Stack);
/*------------------------------------------------------*/
#endif
和 utils.h
#ifndef __UTILS_H__
#define __UTILS_H__
#define INT_MIN -2147483648
/*------------------------Typedef-----------------------*/
typedef enum Boolean_ {
FALSE,
TRUE
} Bool;
/*------------------------------------------------------*/
#endif
在 stack.h 中,我需要知道 Bool,但是当我在 stack.c 中包含 utils.h 时,stack.h 中的结构仍然未知。如何做到这一点而不必直接在 stack.h 中定义它?
最佳答案
您需要在堆栈中包含 utils.h .h (不是stack.c)。 #include
语句是 C 宏语言的一部分,它是一个简单的预处理器。它实际上将给定的文件作为文件名(#include
文件名)并将其插入到您的程序中(在编译的预处理器阶段)。
关于c - 如何使用 C 中另一个头文件中某个头文件中定义的结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58794900/