繁体   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