Каково использование определения типа?

Каково использование ключевого слова определения типа в C? Когда это необходимо?

54
задан Oded 1 April 2010 в 23:01
поделиться

3 ответа

typedef предназначен для определения чего-либо как типа . Например:

typedef struct {
  int a;
  int b;
} THINGY;

... определяет THINGY как данную структуру. Таким образом, вы можете использовать его так:

THINGY t;

... вместо:

struct _THINGY_STRUCT {
  int a;
  int b;
};

struct _THINGY_STRUCT t;

... что немного более подробно. typedef может сделать некоторые вещи значительно более ясными, особенно указатели на функции.

53
ответ дан 7 November 2019 в 07:54
поделиться

Из википедии:

typedef - ключевое слово в языках программирования C и C ++. Цель typedef - присвоить альтернативные имена существующим типам, чаще всего тем, чье стандартное объявление громоздко, потенциально сбивает с толку или может отличаться от одной реализации к другой.

И:

K&R заявляет, что есть две причины для использования typedef. Во-первых, он позволяет сделать программу более переносимой. Вместо того, чтобы изменять тип везде, где он появляется в исходных файлах программы, нужно изменить только один оператор typedef. Во-вторых, определение типа может упростить понимание сложной декларации.

И аргумент против:

Он (Грег К.Х.) утверждает, что такая практика не только излишне запутывает код, но также может заставить программистов случайно неправильно использовать большие структуры, считая их простыми типами.

30
ответ дан 7 November 2019 в 07:54
поделиться

Может быть псевдонимом другого типа.

typedef unsigned int uint; /* uint is now an alias for "unsigned int" */
2
ответ дан 7 November 2019 в 07:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: