c语言 - 函数的参数如何成为类型?(类似于va_arg的第二个论点)



在可变参数函数的函数va_arg中,第二个参数只是'type'。使用此函数时,示例会传递类似"int"的内容。如何在自己的函数中传递和使用类型?例如,如果我想对内存块进行 malloc,以便使用括号 [ ] 将使用用户指定的正确偏移量,有没有办法做到这一点?

函数不能。va_arg是一个宏,它调用了许多特定于平台的垃圾。但是您要执行的操作可能如下所示:

#define mallocT(T, n) (malloc(sizeof(T) * (n)))

其中 T 是类型参数,n 是数组大小整数参数。

最新更新