From f9444f3dbf9c64c1d28cd5102bc756a52507f989 Mon Sep 17 00:00:00 2001 From: coffee Date: Thu, 3 Apr 2025 10:48:36 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E5=A2=9E=E5=8A=A0=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=A0=88=E6=8C=87=E5=AE=9A=E4=BD=8D=E7=BD=AE=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/HByteStack.h | 3 +++ src/HByteStack.c | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/include/HByteStack.h b/include/HByteStack.h index d91acdd..9c381de 100644 --- a/include/HByteStack.h +++ b/include/HByteStack.h @@ -107,6 +107,9 @@ HByteDataType HByteStackPop(HByteType *stackData); // 返回栈顶数据, 失败返回 HBYTE_STACK_ERROR HByteDataType HByteStackTop(const HByteType *stackData); +// 返回指定位置数据, 失败返回 HBYTE_STACK_ERROR +HByteDataType HByteStackGetPos(const HByteType *stackData, HByteLenType pos); + // 返回栈长度 HByteLenType HByteStackLen(const HByteType *stackData); diff --git a/src/HByteStack.c b/src/HByteStack.c index 104eae0..899cfa6 100644 --- a/src/HByteStack.c +++ b/src/HByteStack.c @@ -113,6 +113,15 @@ HByteDataType HByteStackTop(const HByteType *stackData) { return GetStackData(stackData, GetStackUseLen(stackData) - 1); } +// 返回指定位置数据, 失败返回 HBYTE_STACK_ERROR +HByteDataType HByteStackGetPos(const HByteType *stackData, HByteLenType pos) { + if (pos >= GetStackUseLen(stackData)) { + return HBYTE_STACK_ERROR; + } + + return GetStackData(stackData, pos); +} + HByteLenType HByteStackLen(const HByteType *stackData) { return GetStackLen(stackData); }