Wir alle haben definitiv das eine oder andere Mal typedef
s und #define
s benutzt. Während ich heute mit ihnen zusammenarbeite, habe ich angefangen, über etwas nachzudenken.
Betrachten Sie die folgenden 2 Situationen, um einen int
Datentyp mit einem anderen Namen zu verwenden:
typedef int MYINTEGER
und
#define MYINTEGER int
Wie in der obigen Situation können wir in vielen Situationen mit #define sehr gut etwas erreichen und auch mit typedef das Gleiche tun, obwohl die Art und Weise, wie wir dasselbe tun, sehr unterschiedlich sein kann. #define kann auch MACRO-Aktionen ausführen, die ein typedef nicht ausführen kann.
Obwohl der Hauptgrund für ihre Verwendung der unterschiedliche ist, wie unterschiedlich ist ihre Arbeitsweise? Wann sollte einer dem anderen vorgezogen werden, wenn beide verwendet werden können? Auch ist einer in welchen Situationen garantiert schneller als der andere? (zB #define ist eine Präprozessor-Direktive, so dass alles viel früher als beim Kompilieren oder zur Laufzeit ausgeführt wird).