มีตัวเลือกที่เราสามารถใช้ตัวดำเนินการ 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));