可以使用一个内部结构体来表示所有参数,将其包含在变参结构体中。这样,在变参结构体结束时不会添加任何额外的填充。
示例代码:
struct InternalParams {
int param1;
char param2;
double param3;
// add additional parameters as needed
};
struct VariadicStruct {
int numParams;
InternalParams params[];
};
VariadicStruct* myStruct = malloc(sizeof(VariadicStruct) + numParams * sizeof(InternalParams));
myStruct->numParams = numParams;
for(int i = 0; i < numParams; ++i) {
myStruct->params[i].param1 = ...;
myStruct->params[i].param2 = ...;
myStruct->params[i].param3 = ...;
}
上一篇:变参函数模板中的歧义模板特化问题
下一篇:变参模板函数的非变参模板化