[dlsym][(void**)]关于(void**)及其相关的理解 #define LOADBASSFUNCTION(f, pdlHandle) *((void**)&f)=(void*)dlsym(pdlHandle,#f)
时间: 2023-12-03 17:02:51 浏览: 66
(dlsym)[(void**)]中的(void**)表示一个指向指针的指针。在Linux系统中,dlsym函数的作用是动态地加载共享库中的符号并返回其地址,而(void**)是dlsym函数的一个参数类型,用于指定要加载的符号的地址。由于符号地址本身也是一个指针类型,因此需要使用指向指针的指针来传递该参数。简而言之,(void**)是一个用于传递指向指针的指针的数据类型。
相关问题
[dlsym][(void**)]关于(void**)及其相关的理解
(void**)是一个指向指针的指针,也就是说,它是一个指针数组的首地址。在C语言中,void*可以指向任何类型的指针,因此(void**)可以表示一个指向任何类型的指针数组的指针。在使用dlsym函数时,它返回一个void*类型的指针,该指针指向指定名称的符号地址。而使用(void**)作为参数,则表示将返回的指针强制转换为指向指针的指针,方便后续对返回指针进行解引用操作。因此,(void**)在dlsym函数中的使用,可以方便地获取指向函数或变量的指针,并进行后续操作。
[dlsym][(void**)]关于(void**)及其相关的详细理解
(void**)是一个指向指针的指针,也称为二级指针。它可以用于访问指针的指针,通过它可以实现多级指针的访问。
在C语言中,dlsym()函数用于在共享库中查找指定的符号,并返回与该符号关联的地址。dlsym()函数返回的地址是一个void*类型的指针。然而,由于我们不知道这个指针所指向的变量类型,因此我们需要将它转换为正确的类型。
这时,就需要使用(void**)来接收dlsym()返回的指针,因为我们不知道这个指针指向的类型,只有在运行时才能确定。通过使用(void**),我们可以将这个指针转换为正确的类型,并对其进行操作。
总之,(void**)是一个指向指针的指针,用于访问指针的指针,并且常常用于类型转换和多级指针的访问。
阅读全文