Definitivamente, todos nós usamos typedef
s #define
es uma vez ou outra. Hoje, enquanto trabalhava com eles, comecei a pensar em algo.
Considere as 2 situações abaixo para usar o int
tipo de dados com outro nome:
typedef int MYINTEGER
e
#define MYINTEGER int
Como na situação acima, em muitas situações, podemos muito bem realizar algo usando #define e também o mesmo usando typedef, embora as maneiras pelas quais fazemos o mesmo possam ser bem diferentes. #define também pode executar ações MACRO que um typedef não pode.
Embora a razão básica para usá-los seja diferente, qual é o nível de trabalho deles? Quando um deve ser preferido em relação ao outro, quando ambos podem ser usados? Além disso, é garantido que um é mais rápido que o outro em que situações? (por exemplo, #define é diretiva de pré-processador, portanto, tudo é feito muito mais cedo do que na compilação ou no tempo de execução).