有什么办法吗
if(...)
return (char)value;
return (unsigned char)value;
通过将支票移至类型转换中以获得类似的内容
return (???)value;
目标是以不同的方式解释值(value)的内容 例如:(无符号字符)144=>144 和(字符)144=>-112
最佳答案
不,在 C 和 C++ 中,函数的返回类型是固定的,即它将始终返回相同的类型。即使您尝试将强制转换作为 return 语句的一部分,返回的值也会隐式转换为函数的返回类型 - 如果可能的话。如果无法进行隐式转换,您将收到编译错误。
所以
returntype foo(...) {.... return x;}
将始终返回returntype
类型的值
在 C++ 中,您可以使用模板来“更改”返回类型,但是一旦解决了模板定义,就会发生同样的情况。强制转换不会改变真正的返回类型。
关于c++ - 如何在 C/C++ 中动态选择要转换的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56779365/