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/50805044/

相关文章:

c - for循环辅助+累加

c - 在 libxml 中选择使用 xPath 验证条件的第一个元素

c++ - JAVA(AES/CBC/PKCS5PADDING)对应的C/C++是什么

java - 向下转换对象的时间复杂度是多少?

c - 我收到错误 : petition of a member in something that it's not an structure or an enum in C

互斥锁解锁和从函数返回之间是否会出现竞争条件

c# - C#中的隐式转换而不创建新对象

c++ - 在 c++ 中,从 unsigned int 到 int 的转换总是保留位模式吗?

java - java.lang.Void 和 void 有什么区别?

c - 双链表和void指针【find方法】