簡體   English   中英

我不明白這個(size_t)_length返回語句

[英]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);
}
  1. 編寫該函數的人都認為,最好將名稱命名為_length 它沒有任何特殊意義。

  2. 當表達式中具有(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.

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