簡體   English   中英

在C庫中強制轉換malloc的結果

[英]Cast result of malloc in c library

我正在查看是否要強制轉換malloc的結果? 似乎您不應該將結果轉換為純C代碼,因為它可能會隱藏錯誤並且是多余的。 但是我也看到有人說c ++需要強制轉換,所以所有c庫都應該強制轉換malloc的結果,因為它們實際上可以在c ++項目中使用嗎?

似乎您不應該將結果強制轉換為純C代碼,因為它可能會隱藏錯誤並且是多余的

那是對的。

並非所有的c庫都強制轉換malloc的結果,因為它們實際上可以在c ++項目中使用?

不可以。AC庫可以在C ++項目中使用,但仍可以編譯為C。

否。如果是C代碼,則應將其編譯為C,而不是C ++,因此編譯器將允許從void*隱式轉換為其他指針。

只有在C ++代碼中使用malloc時,您才需要對其進行強制轉換-並且在我看來,這是“難聞的氣味”-換句話說,這表明該代碼應進行現代化處理以使用newvector或類似的東西。 (當然,這樣做有充分的理由-例如,您可能有1萬行有用的代碼,您需要使用C ++框架進行其他操作-但通常,最好的方法是編寫一些C ++與那10k行接口的綁定,並繼續將其編譯為C)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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