在可变参数函数的函数va_arg中,第二个参数只是'type'。使用此函数时,示例会传递类似"int"的内容。如何在自己的函数中传递和使用类型?例如,如果我想对内存块进行 malloc,以便使用括号 [ ] 将使用用户指定的正确偏移量,有没有办法做到这一点?
函数不能。va_arg
是一个宏,它调用了许多特定于平台的垃圾。但是您要执行的操作可能如下所示:
#define mallocT(T, n) (malloc(sizeof(T) * (n)))
其中 T 是类型参数,n 是数组大小整数参数。