Va_list访问第二个参数
Va_list to access second argument
我试着写一个这样的函数:
int solve(double* x, double xA, double xB, double zeps,
double funct(double x, double*), ...)
这里,'funct'是另一个作为参数传递的函数。现在我想用va_list
来访问这个函数的第二个参数funct'
,它是一个double*
。所以我这样做:
va_list point_arg ;
va_start ( point_arg , funct ) ;
double pp = va_arg ( point_arg , double );
double * pp = va_arg ( point_arg , double * );
似乎,据我所知,我使用的第一个va_arg
成功地找到了函数'funct'的第一个参数,这是一个双精度。然而,va_arg
的第二次使用无法获得指向双精度类型的正确指针(第二个参数)。你知道这是否可能,如果不可能,怎么做吗?
您误解了函数指针的工作方式。函数指针是指向函数存储时在内存中的位置的指针,它不包含有关该函数的参数的任何信息。在调用函数指针时,必须自己提供函数的形参。
所以你不能访问funct
指针的参数,因为这些参数还不存在。它们只有在调用指向do函数时才会存在,这可能发生在代码中。
funct不使用省略号,不能对其应用va_list函数
相关文章:
- 如果条件,当我想第二个参数时
- 如何从第一个参数推断第二个参数类型?
- C++ std::enable_if - 第二个参数的功能
- 如何成功地将函数对象(或lambda)传递给trackbar回调的第二个参数(void*)
- 第二个参数的部分模板专用化
- 难以理解C++中 inet_ntop() 的第二个参数
- 如何传递 ObjectTemplate::New in Google V8 的第二个参数
- 模板的C 功能将第一个参数设置为第二个参数为默认参数
- 我的类中的第二个参数是一个数组.我不确定如何在主程序中编写
- shake_transform_iterator作为推力中的第二个参数的重点是什么:: dredion算法
- 重载运算符:第一个参数对应左操作数,第二个参数对应右操作数
- 递归可变参数模板函数调用第二个参数类型的指针"loses"指针
- 无法转换初始值设定项列表的第二个参数
- 当 cin.getline() 的第二个参数大于数组长度时,不可预测的字符串长度
- 在 QList 派生类的每个迭代器中将'this'作为第二个参数
- std::vector.resize()中的第二个参数是什么意思
- CreateProcess的第二个参数应该是什么
- 此签名中的第二个参数是什么意思
- 是否可以绑定lambda函数的第二个参数
- 第二个参数和第三个参数在fwrite()中的作用是什么?为什么我们在这里需要 3rcount?