Существует множество компонентов, почему это делается.
- Что ЬурейеЕ сделать
- Почему ЬурейеЕ перечисление
typedef
позволяет определять новые типы. Это позволяет сделать ваше намерение более ясным.
char id; // but my id is a number!
typedef unsigned char uint8; // ok now we can use uint8 instead of char
uint8 id; // better! Now we know we should only interpret id as a number.
Во-вторых, в C необходимо указать Alway enum
и struct
когда речь идет о тех, кто:
enum CarModels_e {
Bravia,
Uno
};
enum CarModels_e the_model;
enum CarModels_e other_model
// this gets boring fast...
Так программисты (которые ленивы) будет пытаться не вводить много. Для этого они создают новый тип:
typedef enum CarModels_e CarModels; // now we don't need to type enum every time!
CarModels the_model;
CarModels other_model
// Less typing! Happier programmer!
Но все же вы должны набрать в два раза enum CarModels_e
так они сочетают в себе, что тоже в одной декларации:
typedef enum /* Don't even need a name here anymore! Much less typing :) */ {
Bravia,
Uno
} CarModels;
Зачем использовать enum
вместо номера напрямую ? Потому что таким образом вы можете придать значение цифрам. Поэтому в следующий раз, когда они (или кто-либо еще) прочитают свой код, они все еще знают, что такое эти цифры.
// Example
if (measured_frequency == 12345) { // hmm where does this come from?
if (measured_frequency == MaximumMotorFrequency) { // Ah! Now i'll know what this is about in ten years!
'typedef' просто используется для обозначения аббревиатуры для типа, поэтому вам не нужно повторять все это каждый раз, когда вы его используете. – Barmar
Нет ничего особенного в том, чтобы использовать его для сокращения типа 'enum'. – Barmar
Не обязательно, чтобы вы создавали новый тип данных для АЦП. Перечисление - это int, который вы можете использовать как идентификатор для группы констант. С точки зрения читабельности становится понятным позже в коде, что 'ADC_CH_0' (который имеет значение 0) является точно каналом 0. Простое использование целых чисел для указанной группы - это ожидание. Enums помогают сохранить чистоту. – Talaria