1. 增加字节栈查找可以指定结束索引
This commit is contained in:
parent
808ea9273e
commit
4cfecb4117
@ -119,6 +119,9 @@ void HByteStackClear(HByteType *stackData);
|
|||||||
// 从栈顶开始查找, 成功返回位置, 失败返回 HBYTE_STACK_ERROR
|
// 从栈顶开始查找, 成功返回位置, 失败返回 HBYTE_STACK_ERROR
|
||||||
HByteLenType HByteStackFind(const HByteType *stackData, HByteDataType value);
|
HByteLenType HByteStackFind(const HByteType *stackData, HByteDataType value);
|
||||||
|
|
||||||
|
// 从栈顶开始查找, 到pos索引结束, 成功返回位置, 失败返回 HBYTE_STACK_ERROR
|
||||||
|
HByteLenType HByteStackFindEx(const HByteType *stackData, HByteDataType value, HByteLenType endPos);
|
||||||
|
|
||||||
// 即当前栈位置
|
// 即当前栈位置
|
||||||
HByteLenType HByteStackGetUseLen(const HByteType *stackData);
|
HByteLenType HByteStackGetUseLen(const HByteType *stackData);
|
||||||
|
|
||||||
|
|||||||
@ -126,11 +126,15 @@ void HByteStackClear(HByteType *stackData) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
HByteLenType HByteStackFind(const HByteType *stackData, HByteDataType value) {
|
HByteLenType HByteStackFind(const HByteType *stackData, HByteDataType value) {
|
||||||
if (HByteStackEmpty(stackData)) {
|
return HByteStackFindEx(stackData, value, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
HByteLenType HByteStackFindEx(const HByteType *stackData, HByteDataType value, HByteLenType endPos) {
|
||||||
|
if (endPos >= GetStackUseLen(stackData)) {
|
||||||
return HBYTE_STACK_ERROR;
|
return HBYTE_STACK_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (HByteLenType i = GetStackUseLen(stackData); i-- > 0;) {
|
for (HByteLenType i = GetStackUseLen(stackData); i-- > endPos;) {
|
||||||
if (GetStackData(stackData, i) == value) {
|
if (GetStackData(stackData, i) == value) {
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user