Я видел код C ++, такой как следующий со многими typedef
s.
Каковы преимущества использования многих typedef
подобных s по сравнению с использованием примитивов C ++? Есть ли другой подход, который также может обеспечить эти преимущества?
В конце концов, все данные хранятся в памяти или передаются по проводам в виде битов и байтов, это действительно имеет значение?
types.h:
typedef int16_t Version;
typedef int32_t PacketLength;
typedef int32_t Identity;
typedef int32_t CabinetNumber;
typedef int64_t Time64;
typedef int64_t RFID;
typedef int64_t NetworkAddress;
typedef int64_t PathfinderAddress;
typedef int16_t PathfinderPan;
typedef int16_t PathfinderChannel;
typedef int64_t HandsetSerialNumber;
typedef int16_t PinNumber;
typedef int16_t LoggingInterval;
typedef int16_t DelayMinutes;
typedef int16_t ReminderDelayMinutes;
typedef int16_t EscalationDelayMinutes;
typedef float CalibrationOffset;
typedef float AnalogValue;
typedef int8_t PathfinderEtrx;
typedef int8_t DampingFactor;
typedef int8_t RankNumber;
typedef int8_t SlavePort;
typedef int8_t EventLevel;
typedef int8_t Percent;
typedef int8_t SensorNumber;
typedef int8_t RoleCode;
typedef int8_t Hour;
typedef int8_t Minute;
typedef int8_t Second;
typedef int8_t Day;
typedef int8_t Month;
typedef int16_t Year;
typedef int8_t EscalationLevel;
Кажется логичным попытаться убедиться, что один и тот же тип всегда используется для определенной вещи, чтобы избежать переполнения, но я часто вижу код, в котором вместо этого просто используется int. typedef
ИНГ часто действительно приводит к коду , который выглядит немного как это , хотя:
DoSomething(EscalationLevel escalationLevel) {
...
}
Что тогда заставляет меня задуматься, какой токен на самом деле описывает параметр: тип параметра или имя параметра?
Minute
, функцию в аргумент, объявленный как тип Second
.