Widziałem kod C ++ taki jak poniżej z wieloma typedef
s.
Jakie są korzyści z używania wielu typedef
takich jak ta w porównaniu do używania prymitywów C ++? Czy istnieje inne podejście, które może również przynieść te korzyści?
Ostatecznie wszystkie dane są przechowywane w pamięci lub przesyłane przewodowo jako bity i bajty, czy to naprawdę ma znaczenie?
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;
Logiczne wydaje się staranie, aby upewnić się, że ten sam typ jest zawsze używany do konkretnej rzeczy, aby uniknąć przepełnienia, ale często widzę kod, w którym zamiast tego „int” był używany wszędzie. typedef
Ing często nie prowadzi do kodu, który wygląda trochę jak ten jednak:
DoSomething(EscalationLevel escalationLevel) {
...
}
Co sprawia, że zastanawiam się, który token tak naprawdę opisuje parametr: typ parametru lub nazwa parametru?
Minute
do funkcji, której argument został zadeklarowany jako typ Second
.