gpt4 book ai didi

c - C语言中return后面的语句有什么用?

转载 作者:行者123 更新时间:2023-12-05 08:36:25 26 4
gpt4 key购买 nike

最近看了一个公共(public)C库的代码,发现函数定义如下:

void* block_alloc(void** block, size_t* len, size_t type_size)
{
return malloc(type_size);

(void)block;
(void)len;
}

不知道return后会不会到statements。如果不是,这两条将一些数据转换为 void 的语句的目的是什么?

最佳答案

正如 Basil 所指出的,(void) 语句可能旨在消除有关未使用参数的编译器警告。但是 - 您可以将 (void) 语句移到 return 之前,以减少它们的混淆,并达到相同的效果。

事实上,还有另一种方法可以达到相同的效果,而无需借助任何额外的语句。今天已经有很多编译器支持它,尽管在 C2X 之前它还没有正式出现在 C 标准中:

void* block_alloc(void**, size_t*, size_t type_size)
{
return malloc(type_size);
}

如果您不命名参数,典型的编译器不会期望您使用它们。

关于c - C语言中return后面的语句有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69251774/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com