c - 为什么构建时头文件中的任何修改都不会影响主文件?
问题描述
我正在尝试使用#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。
解决方案
推荐阅读
- java - androidx.sqlite.db.framework.FrameworkSQLiteDatabase.inTransaction 的 NullPointerException - Android Room
- upwork-api - 一些 Upwork API 端点返回内部服务器错误
- amazon-web-services - 我是否需要为 EBS PUBLIC 快照 AWS 付费
- r - 是否有一个 dplyr::filter() 参数等效于 data.table 中的 nomatch 选项?
- mysql - MySql Upsert Proc,仅在传递值时更新
- android - Android 不会从任何区域(例如 ex.values_zh)中获取专门针对区域设置 zh_US 的 strings.xml
- python - 烧瓶后:405 方法不允许
- windows - Windows 命令提示符中的 psql:如何输入新行?
- reactjs - “PropsWithChildren”类型上不存在属性“金额”
' - c# - 从数据表动态更新 LiveCharts