Eu vi código C ++ como o seguinte com muitos typedef
s.
Quais são os benefícios de usar muitos typedef
s como este, em vez de usar primitivas C ++? Existe outra abordagem que também possa alcançar esses benefícios?
No final, todos os dados são armazenados na memória ou transmitidos pelo fio como bits e bytes, isso realmente importa?
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;
Parece lógico tentar garantir que o mesmo tipo seja sempre usado para uma coisa específica, a fim de evitar estouros, mas geralmente vejo código em que "int" foi usado praticamente em todo lugar. O typedef
ing geralmente leva a um código que se parece um pouco com isso:
DoSomething(EscalationLevel escalationLevel) {
...
}
O que me faz pensar em qual token está realmente descrevendo o parâmetro: o tipo ou o nome do parâmetro?
Minute
para uma função que possui um argumento declarado como tipo Second
.