繁体   English   中英

有关强制转换基本返回类型的快速问题

[英]Quick question about casting basic return types

我发现自己大量使用返回类型来使编译器警告静音,这总是让我感到自己做错了什么。

这个例子是Objective-c

const char *strBuf = [anNString UTF8String];
[anOutputStream write:strBufr maxLength:len];

这给我一个编译器警告,因为-UTF8String返回const char *和-write:maxLength:需要const uint8_t *

因此,不知所措,我通常会添加演员表以停止the并继续我的快乐之路。

这是不好的风格(就我而言)还是它的现状?

我感谢任何想法或建议。

没有办法解决这个问题。 C,C ++和Objective-C是强类型语言。 因此,只要有这样的类型转换,您就会收到编译器警告。 解决它的唯一方法是使用并非总是可能的相同类型。 很典型 我会继续做你在做什么。 不要忽略警告或将其关闭,因为会有一种类型转换,这将是您要修复的错误。 如果您关闭警告,则很容易遇到难以发现的错误。

这种类型的转换很丑陋,但这是处理此类类型不匹配的最通用方法。 一些编译器提供了其他方式来消除这些警告,但是将它们关闭是一个坏主意,因为有时它们确实很重要。 演员表承认其差异,并确保您已考虑任何可能的后果。

想想后果。如果你只是不假思索投事情都可能严重错误。但你不这样做,它似乎没有。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM