【发布时间】:2012-07-26 07:10:45
【问题描述】:
我正在尝试将一个套接字过滤器添加到我在 C++ (Linux) 中的一个套接字中。在套接字过滤器中,我需要获取嵌套在另一个结构中的 struct fork_proc_event 的偏移量。定义如下(cn_proc.h):
struct proc_event {
...
联合{
...
结构 fork_proc_event {
__kernel_pid_t parent_pid;
...
} 叉;
...
} 事件数据;
...
};
在 C 中我会这样做:
int off = offsetof(struct fork_proc_event, parent_pid);
但是我正在使用 C++ 进行开发。如果我尝试这样做:
int off = offsetof(proc_event::fork_proc_event, parent_pid);
我收到以下错误:
错误:预期的类型说明符 错误:预期的“,” 错误:在 ',' 标记之前应为 `)'
offsetof() 行应该是什么样子的?
【问题讨论】:
-
只看一眼:会不会是
proc_event::fork::fork_proc_event? -
不,它不起作用。我已经试过了。还是谢谢。
-
也许:offsetof(struct proc_event, event_data.fork.parent_pid) - offsetof(struct proc_event, event_data.fork)
标签: c++ c sockets struct offsetof