藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 http://www.lslnet.com 2006年6月6日 10:18


malloc 的返回值, 不需要 cast

(type *)malloc (...) 是經典的寫法,我以前還看過這裡有一個貼子討論如何把 malloc 的返回值 cast 成複雜的類型。在這裡我想說的是, 在新標準下, malloc 的返回值是無需  cast 的。

一些舊的編譯系統中, malloc 返回的類型為  char *, 所以要cast 成合適的類型,但現在 malloc 都返回 void *, 這樣就無須 cast 了。

有些朋友說不 cast 會有警告,其實是沒有包含  <stdlib.h>; 的緣故, stdlib.h  中給出了函數 malloc  的原型,如果不包含它,編譯器會假定 malloc 返回  int, 所以產生警告。

函數在在默認的情況下全局可見,無需要聲明也可以引用,但返回值被假定為 int.



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com