紧擦菊菊长
2020-03-15 21:05
采纳率: 100%
浏览 538

C语言 怎么有办法让同一个指针指向不同的类型的数据

图片说明

现在我希望用一个宏定义 enter ,来决定一个指针是指向数据结构A还是数据结构B。

然后调用这个指针的时候,只用改变宏定义 enter 就能改变我需要的数据结构类型。

我想好好久也没办法实现,有考虑用共同体,但返回值的问题总是没法解决,不知道有没有大触有办法实现,说一下思路。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • Kim_小星兴 2020-03-15 22:56
    已采纳
    #define TYPE_SWITCH 1
    
    #if TYPE_SWITCH==1
    typedef smartType int;
    #else
    typedef smartType char;
    #endif
    
    

    不知道这样可不可以~
    或者:这样

    #define TYPE_SWITCH 1
    
    #if TYPE_SWITCH==1
    #define Point P_int
    #else
    #define Point P_char
    
    typedef union
    {
        int* P_int;
        char* P_char;
    } SmartType ;
    
    void main(void)
    {
        SmartType a;
        a.Point;//自动转换
    }
    
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • threenewbee 2020-03-16 00:29

    你的想法根本不行。
    因为宏定义是在编译的时候就替换的,而指针指向什么,是运行的时候才能确定的。编译时写死到代码里的东西,不能用来切换运行时的指针。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题