Мы все определенно использовали typedef
s и #define
s один или другой раз. Сегодня, работая с ними, я начал задумываться о чем-то.
Рассмотрим следующие 2 ситуации для использования int
типа данных с другим именем:
typedef int MYINTEGER
а также
#define MYINTEGER int
Как и в приведенной выше ситуации, во многих ситуациях мы можем очень хорошо выполнить задачу, используя #define, а также сделать то же самое, используя typedef, хотя способы, которыми мы делаем то же самое, могут быть совершенно разными. #define также может выполнять действия MACRO, которые typedef не может.
Хотя основная причина их использования различна, насколько отличается их работа? Когда один должен быть предпочтительнее другого, когда оба могут быть использованы? Кроме того, гарантированно один будет быстрее, чем другой, в каких ситуациях? (например, #define является директивой препроцессора, поэтому все делается намного раньше, чем при компиляции или во время выполнения).