Hou*_*ust 5 c pointers structure sizeof dereference
我特别想知道->val在
sizeof(((stoken_t*)(0))->val)
Run Code Online (Sandbox Code Playgroud)
什么stoken_t*(0)指针(0)呢,特别是什么意思?
我希望我已经足够清楚地表达了我的问题。
这是一种在编译时访问结构成员的方法,无需定义该结构类型的变量。
演员阵容(stoken_t*)为值0模仿了结构类型的指针,让您利用的->操作上,就像你会使用它在该类型的指针变量。
另外,作为sizeof编译时运算符,表达式不会在运行时计算,因此与其他情况不同,这里没有发生空指针取消引用。
它类似于类似的东西
stoken_t * ptr;
sizeof(ptr->val);
Run Code Online (Sandbox Code Playgroud)