- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想获取结构中特定成员的大小。
sizeof(((SomeStruct *) 0)->some_member)
对我有用,但我觉得可能有更好的方法。
我可以#define SIZEOF_ELEM(STRUCT, ELEM) sizeof(((STRUCT *) 0)->ELEM)
然后使用SIZEOF_ELEM(SomeStruct, some_member)
,但我想知道是否已经内置了更好的东西。
我的具体用例在 hsc2hs(Haskell C 绑定(bind))中。
pokeArray (plusPtr context (#offset AVFormatContext, filename)) .
take (#size ((AVFormatContext *) 0)->filename) .
(++ repeat '\NUL') $ filename
最佳答案
如果您不能保证有一个变量可以取消引用,那么您所获得的就差不多是干净的了。 (如果可以,那么只使用 sizeof(var.member)
或 sizeof(ptr->member)
,当然,但这在某些需要编译时常量的上下文中不起作用。)
很久很久以前(大约 1990 年),我遇到了一个编译器,它有' offsetof
' 使用基地址 0 定义,它崩溃了。我通过破解 <stddef.h>
解决了这个问题使用 1024 而不是 0。但是你现在应该不会遇到这样的问题。
关于C: 做 sizeof(((SomeStruct *) 0)->some_member) 的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1014750/
我定义了 3 个结构和两种类型 type OnMoveEvent = fn(Board) -> (); type OnGameOverEvent = fn(Player) -> (); #[wasm_
假设 SomeStruct 定义为: struct SomeStruct { int member; }; 这些是什么意思? &SomeStruct::member int SomeStruc
const Vector4 colorBlack = new Vector4(0,0,0,1);//Vector4 is struct public static void example(Vecto
考虑以下几点: struct SomeStruct {} var foo: Any! let bar: SomeStruct = SomeStruct() foo = bar // Compiles
考虑以下几点: struct SomeStruct {} var foo: Any! let bar: SomeStruct = SomeStruct() foo = bar // Compiles
我试图理解 ORM 库的这段代码,但我无法理解 (*User)(nil) 的含义?第一个括号是指向 User 结构的指针,那么第二个括号代表什么? type User struct { Id
我想获取结构中特定成员的大小。 sizeof(((SomeStruct *) 0)->some_member) 对我有用,但我觉得可能有更好的方法。 我可以#define SIZEOF_ELEM(ST
我不小心输入了一个默认的可初始化对象 struct至 std::numeric_limits::infinity() .我得到的是一个默认结构。 为什么标准允许它编译并返回这样一个意想不到的值? #i
我有一个或多或少像这样的结构: [Serializable] [XmlRoot("Customer")] public struct TCustomer { string CustomerNo;
假设我有很多带有接收器的函数或方法,每个函数或方法都有不同类型的参数。我想使用表驱动方法来调度函数或方法调用。所以我将构建一个这样的表: type command struct { name s
我正在查看一些使用的代码 Rc> 所以我出去阅读了 Rc 和 RefCell 之间的差异: 以下是选择 Box、Rc 或 RefCell 的原因的概述: Rc enables multiple own
我在这里做了一些比较: https://github.com/itchingpixels/structs-vs-classes似乎将结构插入结构数组比将类插入类数组(具有相同数据)慢 10 倍。 我的
例如: type name struct { name string age int } func main() { c := make(chan name)
给定 SomeStruct 如下: struct SomeStruct { int i; char c; }; 下面不编译。 int main() { std::array a
谁能解释一下这个错误是什么意思?这实际上是相同的结构。它是否无法以某种方式推断出 R 或 F 并以这种方式报告? src/demo.rs:113:51: 113:65 error: mismatche
主题。用例是:假设我有一个非托管缓冲区,用于存储 SomeStruct 的 N 个实例。 .所以在这个缓冲区中有一个地址,有没有办法把这个地址转换成ref SomeStruct -- 例如能够直接更新
这里有一些设置代码来解释正在发生的事情: protocol CanJump{ func jump() } struct Dog: CanJump{ func jump(){
我有一个结构 type mapKey string var key1 mapKey = "someKey" var key2 mapKey = "anotherKey" type SampleMap
当我尝试使用用户定义的转换运算符从接口(interface)类型转换为通用结构类型时,出现编译错误,指出类型无法转换: public interface J { } public struct S {
我是一名优秀的程序员,十分优秀!