sizeof a struct member
如何获取C中结构中成员的大小?
1 2 3 4
| struct A
{
char arr[64];
}; |
我需要这样的东西:
SiZeof(A::ARR)
谢谢
- 你试过sizeof(A::arr)时发生了什么?
- @pmg A不是c中的类型
- C对"sizeof(a::arr)"说了"语法错误"。C在语法中的任何地方都不使用双冒号。
- @PMG:我不认为::已经介绍给C了。
- 这里有一个类似的问题:stackoverflow.com/questions/3553296/…
1
| sizeof(((struct A*)0)->arr); |
现简要,A型struct A*指针到零,但从一个大学sizeof是不被法律允许的,这是你要的大小和结构成员没有创建实例的结构。
基本上,我们是假装这是它存在的实例,可以在地址0的偏移和sizeof用于生物测定。
进一步阐述,读这篇文章。
www.embedded.com http:/ / / /原型设计和开发4024941 / A /学习新技巧的offsetof——与宏观调控
- 在Windows(RTL_FIELD_SIZE(type, field)和Linux(FIELD_SIZE(t,f)中)中有用于此构造的宏。
- @迈克尔:当您可以同样轻松地编写自己的可移植实现时,没有理由使用非可移植系统特定的宏。
- /*哈,有趣的是,这不适用于抽象结构/类*/它不适用于同一类中的静态常量。
- @拉蒙扎拉苏阿布。在C++中,你应该使用EDCOX1,2。