簡體   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