Definitivamente, todos hemos usado typedef
sy #define
s una u otra vez. Hoy, mientras trabajaba con ellos, comencé a reflexionar sobre algo.
Considere las siguientes 2 situaciones para usar int
el tipo de datos con otro nombre:
typedef int MYINTEGER
y
#define MYINTEGER int
Al igual que en la situación anterior, podemos, en muchas situaciones, lograr muy bien algo usando #define, y también hacer lo mismo usando typedef, aunque las formas en que hacemos lo mismo pueden ser bastante diferentes. #define también puede realizar acciones MACRO que un typedef no puede.
Aunque la razón básica para usarlos es diferente, ¿qué tan diferente es su funcionamiento? ¿Cuándo se debe preferir uno sobre el otro cuando se pueden usar ambos? Además, ¿se garantiza que uno sea más rápido que el otro en qué situaciones? (por ejemplo, #define es una directiva de preprocesador, por lo que todo se hace mucho antes que durante la compilación o el tiempo de ejecución).