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