ฉันได้เห็นรหัส C ++ เช่นดังต่อไปนี้กับหลายtypedef
ๆ
อะไรคือประโยชน์ของการใช้หลาย ๆtypedef
อย่างเช่นนี้เมื่อเทียบกับการใช้ภาษาซีพลัสพลัส มีวิธีอื่นที่อาจบรรลุผลประโยชน์เหล่านั้นด้วยหรือไม่
ในที่สุดข้อมูลทั้งหมดจะถูกเก็บไว้ในหน่วยความจำหรือส่งผ่านสายเป็นบิตและไบต์จริงหรือไม่
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;
ดูเหมือนว่ามีเหตุผลที่จะลองและตรวจสอบให้แน่ใจว่ามีการใช้งานประเภทเดียวกันเสมอสำหรับบางสิ่งเพื่อหลีกเลี่ยงการโอเวอร์โฟลว์ แต่ฉันมักจะเห็นโค้ดที่ "int" เพิ่งถูกใช้งานไปทุกหนทุกแห่งแทน typedef
ไอเอ็นจีมักจะนำไปสู่การรหัสที่มีลักษณะบิตเช่นนี้แม้ว่าจะเป็น:
DoSomething(EscalationLevel escalationLevel) {
...
}
ซึ่งทำให้ฉันสงสัยว่าโทเค็นใดที่อธิบายพารามิเตอร์จริง ๆ : ชนิดพารามิเตอร์หรือชื่อพารามิเตอร์
Minute
Second