[英]how a cpp function should return "-1" as char*?
對於問題陳述,存在一種情況,其中返回char*
的 cpp 函數需要將值return
為-1
。 如何返回負整數值的char*?
示例偽代碼,其中函數正在解密mystring
並返回給定index
處的字符,如果未找到則應返回-1
:
char * decrypt(char *mystring, int index){.........................
//code for decrypt mystring
if (index is valid after decryption)
return valid value
else
return '-1';
}
在上面的代碼塊中,如何返回與 char * 兼容的 '-1'
如果沒有找到應該返回-1:
這是一個糟糕的設計。 指針有一種傳統的方式來表示一個不指向任何東西的值:null 指針。 更常規的設計是在未找到結果時返回nullptr
。
如果您使用諸如 -1 之類的任意值,調用者將很難確定未找到該結果。
如何返回帶有負 integer 值的 char*?
示例(但請記住,這是一個糟糕的設計):
std::intptr_t negative = -1;
return reinterpret_cast<char*>(negative);
並返回一個字符
您的 function 與您的描述相矛盾。 function 不返回字符; 它返回一個指針。
在 C++17 你有 std::optional ( https://en.cppreference.com/w/cpp/utility/optional )來適應這種情況(雖然你肯定需要更多的經驗)。
可以在cpp返回'#'的字符返回函數中返回'#'返回-1
char func(){return '#'}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.