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

图片说明

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

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

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

#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;//自动转换
}

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