gpt4 book ai didi

c - 有没有一种可移植的方法来查询 void* 指针的类型?

转载 作者:太空宇宙 更新时间:2023-11-04 05:37:59 24 4
gpt4 key购买 nike

基本问题:是否有可移植的(或者至少是大多数编译器中都有的库)方法来在运行时查询 void* 指针的类型?特别是,是否可以确定指针是 struct x 类型还是 struct y 类型(作为示例)。

附加信息:我知道 gcc 提供了 typeof 运算符,但我想要一种更便携、更少依赖编译器的方法来完成同样的事情。

要求:

  1. 不能完全依赖于编译器。这包括特定于编译器的宏和大多数编译器中不常实现的其他功能。

  2. 与任何可移植性较差的实现相比,我更喜欢适用于任何编译器的函数(尽管我会接受最适合我目标的答案)。

  3. 可以建议在库中使用不在 C11 函数中但在大多数编译器中常见的函数。请务必解释它的工作原理和参数。

最佳答案

你要求的是不可能的。 void * 指针是根据定义 的通用指针。它可以转换为任何类型的指针或从任何类型的指针转​​换;无法确定它指向的数据类型(如果有的话!)。

关于c - 有没有一种可移植的方法来查询 void* 指针的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27882788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com