Is it possible to overload operators (such as operators of comparison) in C?
If so, how do you do it? I did a quick search, but all I found was for C++, and what I want is for C.
Anyone have any ideas?
Edit1: The idea is: I have a struct, and I need to do a comparison (based on a member of the struct). And for this I would like to associate operators compared to my new "data type".
Edit2: I am completely aware that I can do without the use of operator overloading, but was wondering if you can do this WITH OVERLOAD.
Answer: The concept of overload is associated with object-oriented programming. Since C is not object oriented and therefore can not contain a concept of overload. (:
No, it is not possible. C does not support operator overloading.
If by overload, you mean user defined operator overloads, then the answer is no. However, some of the predefined operators such as *, + etc. are overloaded (if you think about it) for arithmetic types. The * is special since it also has an overload for de-referencing pointers.
C does not support overloading of operators or functions. There's no way you can redefine <, <=, >, >=, ==, or != to compare struct types directly.
来源:https://stackoverflow.com/questions/10624525/is-it-possible-to-overload-operators-in-c