สไตล์ sizeof: sizeof (ชนิด) หรือตัวแปร sizeof?
ฉันเห็นสองรูปแบบการใช้งานsizeofสำหรับการดำเนินการที่เกี่ยวข้องกับหน่วยความจำ (เช่นในmemsetหรือmalloc): sizeof(type)และ sizeof variable หรือ sizeof(variable) คุณต้องการเลือกแบบใดหรือคุณใช้การผสมผสานระหว่างสองสไตล์และเมื่อใดที่คุณจะใช้แต่ละสไตล์ อะไรคือข้อดีข้อเสียของแต่ละสไตล์และเมื่อคุณใช้พวกเขา? เป็นตัวอย่างฉันสามารถดูคู่ของสถานการณ์ต่อไปนี้ที่ลักษณะหนึ่งช่วยและอีกลักษณะหนึ่งไม่ได้: เมื่อคุณทำให้ตัวชี้ไปทางผิด: type *var; ... memset(var, 0, sizeof var); /* oops */ เมื่อประเภทเปลี่ยนแปลง: new_type var; /* changed from old_type to new_type */ ... memset(&var, 0, sizeof(old_type)); /* oops */