OFFSETOF
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgOffsetof
- 最后更新: 2016-03-13
返回类型中字段的偏移量。
语法
#define Offsetof(typename, fieldname) cint( @cast( typename ptr, 0 )->fieldname )用法
result = Offsetof( typename, fieldname )参数
typename
使用 Type...End Type 语句定义的类型名称。
fieldname
在类型中定义的字段名称(或在派生类型的基类型中定义的字段名称)。
描述
对于非派生类型,Offsetof 将返回 fieldname 从 typename 开头起的字节偏移量位置。
对于派生类型,Offsetof 将返回 fieldname 从其最高基类型开头起的字节偏移量位置。
注意:如果基类型的成员被新成员覆盖,则无法从派生类型访问旧成员的偏移量。
示例
start GeSHi
vb
Type MyType
x As Single
y As Single
Union
b As Byte
i As Integer
End Union
End Type
Print "OffsetOf x = "; OffsetOf(MyType, x)
Print "OffsetOf y = "; OffsetOf(MyType, y)
Print "OffsetOf b = "; OffsetOf(MyType, b)
Print "OffsetOf i = "; OffsetOf(MyType, i)end GeSHi
输出
OffsetOf x = 0
OffsetOf y = 4
OffsetOf b = 8
OffsetOf i = 8方言差异
- 在 -lang qb 方言中不可用,除非通过别名
__Offsetof引用。
与 QB 的差异
- FreeBASIC 新增功能
参见
Type...End TypeSizeof
返回 目录