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