[英]I don't understand this (size_t)_length return statment
我正在為我所在的類編寫一個內存分配替換API,並且下面有一個名為my_malloc()
的函數( my_malloc()
教授概述了基本框架),該函數返回我不了解的內容。
有人可以啟發我為什么_length
參數開頭有下划線,為什么return語句(size_t)
與_length不分開?
Addr my_malloc(unsigned int _length) {
/* This preliminary implementation simply hands the call over the
the C standard library!
Of course this needs to be replaced by your implementation.
*/
return malloc((size_t)_length);
}
編寫該函數的人都認為,最好將名稱命名為_length
。 它沒有任何特殊意義。
當表達式中具有(Typename)variablename
,它稱為強制轉換 。 在將_length
傳遞給malloc
函數之前,此代碼將_length
轉換為size_t
類型。
這實際上是多余的,因為在調用malloc
時隱式發生了相同的轉換。 (除非我們在C89中,並且從未聲明過malloc
,但這應該通過#include <stdlib.h>
,而不是通過插入此強制轉換來解決)
下划線只是變量名稱的一部分。 我可以定義變量x以及_x或x__。
第二個問題:這是一個從int強制轉換為size_t的顯式類型。
我建議您閱讀一些有關C語言中類型轉換的知識,了解這一點很重要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.