Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

จะใช้ sizeof ของคุณเองใน C . อย่างไร


ในการใช้ sizeof() เราสามารถรับค่าโดยใช้ตัวแปร x โดยใช้ &x มันจะพิมพ์ที่อยู่ของมัน ตอนนี้หากเราเพิ่มค่าของ &x ก็อาจเพิ่มขึ้นในลักษณะที่แตกต่างกัน หากเพิ่มเพียงหนึ่งไบต์ แสดงว่าเป็นอักขระ หากค่าที่เพิ่มขึ้นคือ 4 แสดงว่าเป็น int หรือ float เป็นต้น โดยหาผลต่างระหว่าง &x + 1 กับ &x เราจะได้ขนาดของ x

ที่นี่เราจะใช้มาโครเนื่องจากไม่ได้กำหนดประเภทข้อมูลในฟังก์ชัน และอีกอย่างหนึ่ง เรากำลังแคสต์โดยใช้ (char*) ดังนั้น มันจะบอกเราว่าสามารถใส่ข้อมูลประเภทอักขระได้จำนวนเท่าใดในที่นั้น เนื่องจากอักขระใช้ข้อมูลหนึ่งไบต์

ตัวอย่าง

#include <stdio.h>
#define my_sizeof(type) (char *)(&type+1)-(char*)(&type)
main(void) {
   int x = 10;
   char y = 'f';
   double z = 254748.23;
   printf("size of x: %d\n", my_sizeof(x));
   printf("size of y: %d\n", my_sizeof(y));
   printf("size of z: %d\n", my_sizeof(z));
}

ผลลัพธ์

size of x: 4
size of y: 1
size of z: 8