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