我是一名嘗試在有限的Arduino環境中編碼C++的Java開發人員。由於內存限制,異常和動態對象不可用或必須避免。返回多個值
我的任務,創建一個方法來分析字符緩衝區(十六進制半字節)並返回一個布爾值來表示成功以及實際結果。我到目前爲止的嘗試(無關的東西避免):
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;
}
這項工作?我不確定何時使用*
以及何時使用&
。有更好的解決方案嗎?
看看'std :: pair'或'boost :: optional'。他們對此都很好。 – chris
請重新閱讀我的第一段。這是一個基本的C++環境。 – Mot
對不起,我沒有太好的讀過O_o – chris