开发者社区> 问答> 正文

void指针作为函数参数时如何判断传入参数的具体类型呢?

void指针作为函数参数时如何判断传入参数的具体类型呢?

展开
收起
游客3gzok77e677xw 2022-03-30 02:24:42 438 0
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
     
    }
    
    2022-03-30 02:26:02
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载