В чем преимущество (если есть) использовать typedef
вместо #define
в C-коде?
В качестве примера можно ли использовать
typedef unsigned char UBYTE
над
#define UBYTE unsigned char
когда оба могут использоваться как
void func()
{
UBYTE byte_value = 0;
/* Do some stuff */
return byte_value;
}
Очевидно, что предварительный процессор попытается расширить #define
везде, где он видит один, что не произойдет с typedef
, но это не кажется мне каким-либо конкретным преимуществом или недостатком; Я не могу придумать ситуацию, когда либо использование не приведет к ошибке сборки, если возникла проблема.