J'ai vu du code C ++ tel que le suivant avec de nombreux typedef
s.
Quels sont les avantages d'utiliser de nombreux typedef
s comme celui-ci par rapport à l'utilisation de primitives C ++? Existe-t-il une autre approche qui pourrait également générer ces avantages?
Au final, les données sont toutes stockées en mémoire ou transmises sur le fil sous forme de bits et d'octets, est-ce vraiment important?
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;
Il semble logique d'essayer de s'assurer que le même type est toujours utilisé pour une chose particulière pour éviter les débordements, mais je vois souvent du code où "int" vient d'être utilisé à peu près partout à la place. L' typedef
ing mène souvent à un code qui ressemble un peu à ceci:
DoSomething(EscalationLevel escalationLevel) {
...
}
Ce qui me fait alors me demander quel jeton décrit réellement le paramètre: le type de paramètre ou le nom du paramètre?
Minute
à une fonction qui a un argument déclaré comme type Second
.