12

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

如果是这样,你怎么做?我进行了快速搜索,但我发现的只是 C++,而我想要的是 C。

有人有想法么?

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

Edit2:我完全知道我可以不使用运算符重载,但想知道你是否可以通过 OVERLOAD 来做到这一点。

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

4

3 回答 3

22

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

于 2012-05-16T18:32:17.513 回答
7

如果通过重载,您的意思是用户定义的运算符重载,那么答案是否定的。但是,对于算术类型,某些预定义的运算符(例如*+)是重载的(如果您考虑一下的话)。这*是特殊的,因为它还具有取消引用指针的重载。

于 2012-05-16T18:33:15.143 回答
3

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

于 2012-05-16T19:26:29.563 回答