c - 如何使用 C 中另一个头文件中某个头文件中定义的结构?

标签 c include header-files

我有两个头文件,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/

相关文章:

c - 将参数传递给 atexit()

c - 单链单词列表

php - 冲突包括具有相对路径的文件

c++ - .c 与 .cc 与 .cpp 与 .hpp 与 .h 与 .cxx

c - 使用 libpng 过滤器

c - TI-84 : call a function from the catalog with z88dk

c - 我有一个程序,在 win95 上运行,但没有在 winXP 上编译

c++ - 使用类成员变量时访问读取错误

jsp - 一个大的包含文件还是几个较小的文件?

php - 在 PHP 中使用与包含