假设我有一个应该接受任意数量参数的函数,所以我在这里要做的是声明没有原型,并在代码中调用该函数时创建该函数。我正在使用指向 void 的指针来接收随机数的参数参数,但是,在这样做时,对第一个参数的内存地址的引用是唯一传递的东西,所以要让它工作,我必须声明变量的顺序与我将在代码中调用它们的顺序相同:
unsigned char result=0;
unsigned char a=1;
unsigned char b=2;
unsigned char c=3;
char main (void)
{
for (;;)
{
result = function (&a, &b, &c);
result = function (&c, &b, &a);
}
}
function (void *vPointer)
{
return (1);
}
此外,我声明没有类型的函数,因为它与调用不匹配(它也被隐式声明)。
这里的结果是对函数中发送的第一个参数的引用,所以如果 i 在第一个函数调用中指向下一个地址,它将起作用,但在第二个调用中,它获取对 c 的引用,以及任何内存在它放置的位置之前。
任何人都知道以正确方式对参数进行排序的方法吗?还是在函数中接收未知数量参数的有效方法?
注意:(...)不得使用。