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

Ric*_*ard 9 c overriding overloading

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

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

有人有主意吗?

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

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

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

mea*_*gar 19

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

  • C中的过载函数是什么意思?C不支持函数重载. (2认同)

dir*_*tly 6

如果超载,则表示用户定义的运算符重载,则答案为否.然而,一些预定义的运营商如中*,+等过载(如果你认为这件事)的算术类型.这*是特殊的,因为它还具有用于取消引用指针的重载.

  • `*`并不是那么特别.有两个独立的运算符,一个是二进制的,另一个是一元的,具有相同的名称.例如,"&"也会发生同样的情况.在这两种情况下,一元和二元运算符都是不相关的. (3认同)