Каково использование ключевого слова определения типа в C? Когда это необходимо?
typedef
предназначен для определения чего-либо как типа . Например:
typedef struct {
int a;
int b;
} THINGY;
... определяет THINGY
как данную структуру. Таким образом, вы можете использовать его так:
THINGY t;
... вместо:
struct _THINGY_STRUCT {
int a;
int b;
};
struct _THINGY_STRUCT t;
... что немного более подробно. typedef может сделать некоторые вещи значительно более ясными, особенно указатели на функции.
Из википедии:
typedef - ключевое слово в языках программирования C и C ++. Цель typedef - присвоить альтернативные имена существующим типам, чаще всего тем, чье стандартное объявление громоздко, потенциально сбивает с толку или может отличаться от одной реализации к другой.
И:
K&R заявляет, что есть две причины для использования typedef. Во-первых, он позволяет сделать программу более переносимой. Вместо того, чтобы изменять тип везде, где он появляется в исходных файлах программы, нужно изменить только один оператор typedef. Во-вторых, определение типа может упростить понимание сложной декларации.
И аргумент против:
Он (Грег К.Х.) утверждает, что такая практика не только излишне запутывает код, но также может заставить программистов случайно неправильно использовать большие структуры, считая их простыми типами.
Может быть псевдонимом другого типа.
typedef unsigned int uint; /* uint is now an alias for "unsigned int" */