Ist es möglich, die Operatoren überladen in C?

Ist es möglich, die Operatoren überladen (wie z.B. Betreiber-Vergleich) in C?

Wenn ja, wie tun Sie es? Ich habe eine schnelle Suche, aber alles was ich fand, war für C++, und was ich will, ist für C.

Jemand irgendwelche Ideen?

Edit1: Die Idee ist: ich habe eine struct, und ich brauche, um zu tun, einen Vergleich (bezogen auf ein Mitglied der Struktur). Und für diese würde ich gerne zuordnen Betreiber im Vergleich zu meinem neuen "Daten-Typ".

Edit2: ich bin mir völlig bewusst, dass ich tun kann, ohne die Verwendung von operator überladen, aber Frage mich, wenn Sie können dies tun, MIT ÜBERLASTUNG.

Antwort: Das Konzept der überladung ist im Zusammenhang mit der objektorientierten Programmierung. Da C ist nicht Objekt-orientiert und kann daher auch nicht enthalten, ein Begriff der überlastung. (:

  • Ich würde eher dazu in C: struct A; _Bool A_compare(const struct* A, const struct* A);
  • Ich weiß. Ich möchte die Betreiber, wenn es möglich war.
  • Wenn Sie möchten, operator-überladen, dann brauchen Sie für die Umstellung auf c++
  • RE Ihre Bearbeitungen: Nein, das können Sie nicht. Es gibt keine solche Sache wie operator-überladung in C: Sie können nicht benutzerdefinierte Operatoren für die Arbeit mit Ihren Strukturen, die in irgendeiner Weise an allen, C.-Operator überlädt, ist etwas, das Sie in C++, es hat nichts, was so überhaupt zu tun, nicht mit C.
  • Sie sagen, Sie vergleichen zwei Werte des gleichen struct-Typ. Durch vergleichen, meinst du mit < Art oder die == Art? Wenn der ehemalige, ist es für die Sortierung? Wenn dem so ist, qsort ermöglicht (erfordert), dass Sie Ihre eigenen Komparator.
  • Was meinst du mit "MIT ÜBERLAST"? Ich glaube nicht, dass anschreien der compiler helfen.

InformationsquelleAutor Richard | 2012-05-16
Schreibe einen Kommentar