ในภาษา C++ เราสามารถสร้างตัวดำเนินการ sizeof เองได้โดยใช้คำสั่ง #define ซึ่งจะทำงานเหมือนกับตัวดำเนินการ sizeof มาตรฐาน ทั้งนี้ sizeof เป็นตัวดำเนินการแบบ unary ที่ใช้คำนวณขนาดของข้อมูลทุกประเภท
รูปแบบการสร้าง sizeof เอง
#define ชื่อแมโคร(วัตถุ) (char *)(&วัตถุ+1) - (char *)(&วัตถุ)
ชื่อแมโคร − ชื่อที่ต้องการตั้งให้กับตัวดำเนินการ sizeof เอง
ตัวอย่างโค้ด
#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 ประกาศตัวดำเนินการ sizeof เอง และคำนวณขนาดของตัวแปรจำนวนเต็มและอาเรย์ตัวอักษร