Tutti abbiamo definitivamente usato typedef
se #define
s una volta o l'altra. Oggi mentre lavoravo con loro, ho iniziato a meditare su una cosa.
Considera le seguenti 2 situazioni per utilizzare il tipo di dati int
con un altro nome:
typedef int MYINTEGER
e
#define MYINTEGER int
Come la situazione di cui sopra, possiamo, in molte situazioni, realizzare molto bene una cosa usando #define, e anche fare lo stesso usando typedef, anche se i modi in cui facciamo lo stesso possono essere molto diversi. #define può anche eseguire azioni MACRO che un typedef non può.
Sebbene il motivo fondamentale per utilizzarli sia il diverso, quanto è diverso il loro funzionamento? Quando si dovrebbe essere preferito all'altro quando entrambi possono essere usati? Inoltre, è garantito essere più veloce dell'altro in quali situazioni? (ad esempio, #define è una direttiva per il preprocessore, quindi tutto è fatto molto prima che alla compilazione o al runtime).