是否有可能在C中重载运算符?

是否有可能在C中重载运算符(如比较运算符)?

如果是这样,你怎么做? 我做了一个快速搜索,但我找到的只是用于C ++,我想要的是C语言。

有人有主意吗?

Edit1:我的想法是:我有一个结构,我需要做一个比较(基于结构的一个成员)。 为此,我想将运营商与我的新“数据类型”相关联。

编辑2:我完全知道我可以不使用运算符重载,但想知道你是否可以使用OVERLOAD执行此操作。

答案:重载的概念与面向对象的编程有关。 由于C不是面向对象的,因此不能包含过载的概念。 (:

不,这是不可能的。 C不支持运算符重载。

如果超载,则表示用户定义的运算符重载,则答案为否。 但是,对于算术类型,某些预定义的运算符(如*+等)会被重载(如果您考虑的话)。 *是特殊的,因为它还有一个用于取消引用指针的重载。

C不支持运算符函数的重载。 您无法直接重新定义<<=>>===!=来比较结构类型。