Я бачив код 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" використовується майже скрізь. Thetypedef
ІНГ часто дійсно призводить до коду , який виглядає трохи як це , хоча:
DoSomething(EscalationLevel escalationLevel) {
...
}
Що потім змушує мене замислитися, який маркер насправді описує параметр: тип параметра або ім'я параметра?
Minute
до функції, яка має аргумент, оголошений як тип Second
.