Saya telah melihat kode C ++ seperti berikut dengan banyak typedef
s.
Apa manfaat menggunakan banyak typedef
s seperti ini dibandingkan dengan menggunakan primitif C ++? Apakah ada pendekatan lain yang mungkin juga mencapai manfaat itu?
Pada akhirnya, semua data disimpan dalam memori atau dikirim melalui kabel sebagai bit dan byte, apakah itu penting?
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;
Tampaknya logis untuk mencoba dan memastikan tipe yang sama selalu digunakan untuk hal tertentu untuk menghindari kelebihan, tetapi saya sering melihat kode di mana "int" baru saja digunakan di mana-mana. The typedef
ing sering tidak menyebabkan kode yang terlihat sedikit seperti ini meskipun:
DoSomething(EscalationLevel escalationLevel) {
...
}
Yang kemudian membuat saya bertanya-tanya token mana yang sebenarnya menggambarkan parameter: tipe parameter atau nama parameter?
Minute
ke fungsi yang argumennya dideklarasikan sebagai tipe Second
.