首页 > 解决方案 > 为什么构建时头文件中的任何修改都不会影响主文件?

问题描述

我正在尝试使用#c 中的数组来实现堆栈。我已经创建了实现和头文件,然后从链接器设置链接了堆栈 C 库。堆栈的结构仅包含在头文件 stack.h 中。

#define max_stack 100

Typedef int stackentry ;

typedef struct stack

{int top; stackentry entry[max_stack] ;} STack;

我在 main.c 和 stack.c 中都包含了 stack.h,但问题是当我第一次构建并运行它时它还可以,但是通过更改头文件中的 max_stack 对堆栈大小进行了任何修改,它不会影响输出我做的时候很清楚

#define max_stack 5

然后使用 push 函数超过五次,同时考虑到在 push 之前的完整堆栈机制测试,并且它在不查看数组大小(在这种情况下为 5)的情况下进行推送。编译器仅将其视为第一次声明的 100。

标签: cstackimplementation

解决方案


推荐阅读