c - 为什么将未使用的函数参数值转换为 void?

标签 c casting void

在一些C项目中,我看到过这样的代码:

static void *l_alloc (void *ud, void *ptr, size_t osize, size_t nsize) {
    (void)ud;
    (void)osize;
    /* some code not using `ud` or `osize` */
    return ptr;
}

两次转换为 void 有什么用吗?

最佳答案

这是为了避免编译器发出警告,因为一些参数未被使用。

关于c - 为什么将未使用的函数参数值转换为 void?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4647665/

相关文章:

c++ - 参数类型 'void' 不完整

java - 为什么 Servlet.service 被设计为返回 void?

c# - T 的通用存储库过滤器数据

c++ - 通过void指针修改结构体的内容

c - 这里有什么逻辑错误吗?

c - 在 GTK+ 3 C 中创建菜单时不显示菜单

C# 将数组转换为元素类型

android - 以编程方式从 android 转换到 miracast 接收器的步骤

将 char 数组中的内容转换为 C 中的十六进制(例如 : {'5' , 'A' } 到 0x5A)

c - fgets - 数组大小和 int num 之间的差异