是否可以在C?
中重载运算符(例如比较运算符)如果是这样,你怎么做?我做了一个快速搜索,但我找到的只是C ++,我想要的是C。
有人有什么想法吗?
Edit1:我的想法是:我有一个结构,我需要做一个比较(基于结构的一个成员)。为此,我想将运营商与我的新“数据类型”相关联。
Edit2:我完全清楚我可以不使用运算符重载,但是想知道你是否可以使用OVERLOAD执行此操作。
答案:重载的概念与面向对象的编程有关。由于C不是面向对象的,因此不能包含过载的概念。 (:
答案 0 :(得分:18)
不,这是不可能的。 C不支持运算符重载。
答案 1 :(得分:6)
如果超载,则表示用户定义的运算符重载,则答案为否。但是,对于算术类型,某些预定义的运算符(例如*
,+
等)会被重载(如果您考虑的话)。 *
是特殊的,因为它还有一个用于取消引用指针的重载。
答案 2 :(得分:3)
C不支持运算符或函数的重载。您无法重新定义<
,<=
,>
,>=
,==
或!=
来直接比较结构类型。