函数的参数如何成为类型? (类似于va_arg的第二个参数)

时间:2019-08-11 02:33:26

标签: c variadic-functions variadic variadic-macros

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

1 个答案:

答案 0 :(得分:1)

功能不能。 va_arg是一个宏,它调用许多特定于平台的垃圾。但是您想要做的可能看起来像这样:

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

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