如何在 C 中实现你自己的 sizeof
要使用 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
", my_sizeof(x));
printf("size of y: %d
", my_sizeof(y));
printf("size of z: %d
", my_sizeof(z));
}输出
size of x: 4 size of y: 1 size of z: 8
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP