gpt4 book ai didi

c++ - 返回多个值

转载 作者:太空宇宙 更新时间:2023-11-04 15:49:31 25 4
gpt4 key购买 nike

我是一名 Java 开发人员,试图在有限的 Arduino 环境中编写 C++ 代码。由于内存限制,异常和动态对象不可用或必须避免。

我的任务是创建一个方法来解析字符缓冲区(十六进制半字节)并返回一个 bool 值以指示成功以及实际结果。到目前为止我的尝试(避免了无关的东西):

class Parser {
unsigned char buffer[SIZE];
unsigned char index;

void parse();
bool parseHexNibble(unsigned char &result);
};

void Parser::parse() {
unsigned char result = 0;
if (!parseHexNibble(result)) {
return;
}

// do some work with result
}

bool Parser::parseHexNibble(unsigned char &result) {
unsigned char chr = buffer[index];
if (chr >= '0' && chr <= '9') {
result = chr - '0';
}
else if (chr >= 'A' && chr <= 'F') {
result = chr - 'A' + 10;
}
else {
return false;
}

index++;
return true;
}

这行得通吗?我不确定何时使用 * 以及何时使用 &。有更好的解决方案吗?

最佳答案

是的,这应该可行,但请注意,这不考虑小写字符,但请注意,您忘记返回 true 表示成功。

此外,您的方法和成员默认标记为private

您还应该初始化 result 以防失败,否则如果您忘记检查返回类型,您将面临使用未初始化变量的风险。

关于c++ - 返回多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10839957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com