Wszyscy zdecydowanie używaliśmy typedef
si #define
raz lub drugi. Dzisiaj, pracując z nimi, zacząłem się nad czymś zastanawiać.
Rozważ poniższe 2 sytuacje, aby użyć int
typu danych o innej nazwie:
typedef int MYINTEGER
i
#define MYINTEGER int
Podobnie jak w powyższej sytuacji, w wielu sytuacjach możemy bardzo dobrze osiągnąć coś za pomocą #define, a także zrobić to samo za pomocą typedef, chociaż sposoby, w jakie to robimy, mogą być zupełnie inne. #define może także wykonywać akcje MAKRO, których typedef nie może.
Chociaż podstawowy powód ich używania jest inny, to jak różni się ich działanie? Kiedy należy preferować jedno z nich, gdy można używać obu? Ponadto, czy jedna z nich jest szybsza niż druga w jakich sytuacjach? (np. #define jest dyrektywą preprocesora, więc wszystko odbywa się znacznie wcześniej niż podczas kompilacji lub uruchamiania).