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

时间:2012-05-16 18:30:55

标签: c override overloading

是否可以在C?

中重载运算符(例如比较运算符)

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

有人有什么想法吗?

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

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

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

3 个答案:

答案 0 :(得分:18)

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

答案 1 :(得分:6)

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

答案 2 :(得分:3)

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