Nous avons tous définitivement utilisé typedef
s et #define
s une fois ou l'autre. Aujourd'hui, en travaillant avec eux, j'ai commencé à réfléchir à quelque chose.
Considérez les 2 situations ci-dessous pour utiliser int
le type de données avec un autre nom:
typedef int MYINTEGER
et
#define MYINTEGER int
Comme dans la situation ci-dessus, nous pouvons, dans de nombreuses situations, très bien accomplir une chose en utilisant #define, et faire la même chose en utilisant typedef, bien que les façons dont nous faisons la même chose peuvent être très différentes. #define peut également effectuer des actions MACRO qu'un typedef ne peut pas faire.
Bien que la raison fondamentale de leur utilisation soit différente, dans quelle mesure leur fonctionnement est-il différent? Quand faut-il préférer l'un à l'autre quand les deux peuvent être utilisés? De plus, est-il garanti que l'un sera plus rapide que l'autre dans quelles situations? (par exemple, #define est une directive de préprocesseur, donc tout est fait bien avant la compilation ou l'exécution).