저는 제한된 Arduino 환경에서 C++를 코딩하려고하는 Java 개발자입니다. 예외 및 동적 객체를 사용할 수 없거나 메모리 제한 때문에 피할 필요가 없습니다.여러 값 반환
내 작업에서는 문자 버퍼 (16 진수 니블)를 구문 분석하고 실제 결과뿐만 아니라 성공을 나타내는 부울 값을 반환하는 메서드를 만듭니다. 지금까지 시도한 내용 (관련없는 항목은 회피 됨) :
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