Symbian中的变参函数

来源:互联网 发布:丽珠集团工资离职知乎 编辑:程序博客网 时间:2024/06/07 17:37


Symbian中同样可以写变参函数。
   
void VariableFunctionL( TInt aParam, ... )
{
   TInt param1 = aParam;
   VA_LIST list;
   VA_START(list, aParam);
   TBufC<256> param2 = VA_ARG( list, TDesC );
   TInt param3 = VA_ARG( list, TInt );
   VA_END(list);
}
调用  VariableFunctionL( 1, _L("abcde"), 2 );
结果,param1 = 1, param2 = abcde, param3 = 2
VA_LIST,VA_START,VA_ARG和VA_END是Symbian定义的宏。
VA_START第一个参数是VA_LIST变量,实际上是一个游标,指向Arguement list首地址,第二个参数接受Argument list中的第一个值。执行后游标偏移到Argument list中下一个元素。
VA_ARG获取每个参数的值,第二个参数为参数类型,用于计算offset,执行后指针根据偏移指向Argument list中下一个元素。
对Argument list处理结束后,VA_END将游标置0,防止野指针。

原创粉丝点击