簡體   English   中英

cpp 函數應該如何將“-1”作為 char* 返回?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM