C语言获取结构体大小:pahole、sizeof及其他方法
可以使用 sizeof 运算符来获取结构体的大小,例如:
#include <stdio.h>
struct foo {
int a;
char b;
double c;
};
int main() {
struct foo myfoo;
printf('sizeof(struct foo) = %zu\n', sizeof(struct foo));
printf('sizeof(myfoo) = %zu\n', sizeof(myfoo));
return 0;
}
输出:
sizeof(struct foo) = 16
sizeof(myfoo) = 16
除了 pahole 和 sizeof,还可以使用反射机制来获取结构体大小。在C语言中,没有内置的反射机制,但可以使用第三方库来实现,例如 libffi 和 GLib 的 GObject 类型系统。
原文地址: https://www.cveoy.top/t/topic/nF2K 著作权归作者所有。请勿转载和采集!