【发布时间】:2021-01-14 14:04:35
【问题描述】:
也许这只是一个愚蠢的问题,但我想知道是否有一种方法可以在同一个函数参数中允许两种数据类型,一种最终做同样事情的多态性,只是为了过滤掉一些垃圾输入。
typedef enum
{
} type1_t;
typedef enum
{
} type2_t;
void myfunc(typex_t foo)
{
}
【问题讨论】:
-
简短回答:不。C 是一种强类型语言。长答案:有点像
void*和很多巫毒教,但这与“过滤掉垃圾”的效果相反,因为它可以让任何东西进入。 -
你可以使用
union吗? -
你不能只使用一个函数。但是,您可以使用宏和 generic selection 根据类型调用两个函数之一。
-
如果只是枚举,则可以使用 int。但无论如何,您都需要一种方法来知道传递了什么类型,不是吗?
-
你想用这个解决什么问题?也许这是XY Problem(我可能错了)。你会如何处理
myfunc中的foo? Edit 并显示扩展您的示例。