c语言 void * 作为函数参数后,如何判断传入的参数的具体类型

    科技2025-01-19  7

     

    方法1:

    自己定义一些数据结构,数据结构的第一个字段都是一个int整数,表明当前结构是什么类型。在函数中将void 强制转换为int,取出那个标志,再根据标志指示的类型来把void *进一步转换为相应的结构的指针。

    struct my_struct { int a; int b; }; int main () { struct my_struct *p = malloc(sizeof(struct my_struct)); p->a = 1; p->b = 2; int c = *((int *)p); //c === 1 int d = *((int *)p+1); //d ===2 printf("%d %d",c,d); //output: 1,2 }

     

    Processed: 0.008, SQL: 8