Ho visto il codice C ++ come il seguente con molti typedef
s.
Quali sono i vantaggi dell'utilizzo di molti messaggi di typedef
questo tipo rispetto all'utilizzo di primitivi C ++? C'è un altro approccio che potrebbe anche ottenere quei benefici?
Alla fine, i dati sono tutti archiviati in memoria o trasmessi sul filo come bit e byte, importa davvero?
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;
Sembra logico cercare di assicurarsi che lo stesso tipo sia sempre usato per una cosa particolare per evitare overflow, ma vedo spesso codice in cui "int" è stato appena usato praticamente ovunque. L' typedef
ing spesso porta a un codice simile a questo però:
DoSomething(EscalationLevel escalationLevel) {
...
}
Che poi mi chiedo quale token sta effettivamente descrivendo il parametro: il tipo di parametro o il nome del parametro?
Minute
a una funzione che ha un argomento dichiarato come tipo Second
.