มีตัวเลือกที่เราสามารถใช้ตัวดำเนินการ sizeof() ของเราเองได้ ตัวดำเนินการ sizeof() เป็นโอเปอเรเตอร์ unary และใช้ในการคำนวณขนาดของข้อมูลประเภทใดก็ได้ เราสามารถใช้ #define directive เพื่อนำตัวดำเนินการ sizeof() ของเราไปใช้ ซึ่งจะทำงานเหมือนกับตัวดำเนินการ sizeof()
นี่คือรูปแบบการใช้ตัวดำเนินการ sizeof() ของตัวเอง
#define Any_name(object) (char *)(&object+1) - (char *)(&object)
ที่นี่
ชื่ออะไรก็ได้ − ชื่อที่คุณต้องการตั้งให้กับตัวดำเนินการ sizeof() ของคุณเอง
นี่คือตัวอย่างการใช้ตัวดำเนินการ sizeof() ในภาษา C
ตัวอย่าง
#include <stdio.h>
#define to_find_size(object) (char *)(&object+1) - (char *)(&object)
int main() {
int x;
char a[50];
printf("Integer size : %d\n", to_find_size(x));
printf("Character size : %d\n", to_find_size(a));
return 0;
} ผลลัพธ์
Integer size : 4 Character size : 50
ในโปรแกรมข้างต้น #define directive ใช้เพื่อประกาศตัวดำเนินการ sizeof() ของเราเอง และกำลังคำนวณขนาดของอาร์เรย์ประเภทจำนวนเต็มและอักขระ
#define to_find_size(object) (char *)(&object+1) - (char *)(&object)
….
int x;
char a[50];
printf("Integer size : %d\n", to_find_size(x));
printf("Character size : %d\n", to_find_size(a));