我想在C++(Linux)中爲我的某個套接字添加一個套接字過濾器。在套接字過濾器中,我需要獲得struct fork_proc_event的偏移量,它嵌套在另一個結構中。該定義是這樣的(cn_proc.h):在C++中嵌套C結構的offsetof()
struct proc_event { ... union { ... struct fork_proc_event { __kernel_pid_t parent_pid; ... } fork; ... } event_data; ... };
在C我這樣做:
int off = offsetof(struct fork_proc_event, parent_pid);
但是我用C正在開發++。如果我試着這樣做:
int off = offsetof(proc_event::fork_proc_event, parent_pid);
我得到以下錯誤:
error: expected type-specifier error: expected `,' error: expected `)' before ',' token
應如何offsetof()線是什麼樣子?
剛通過查找:它可以是'proc_event :: fork :: fork_proc_event'? – Alex 2012-07-26 07:13:03
不,它不起作用。我已經嘗試過了。不管怎麼說,還是要謝謝你。 – 2012-07-26 07:21:20
也許:offsetof(struct proc_event,event_data.fork。parent_pid) - offsetof(struct proc_event,event_data.fork) – 2012-07-26 07:38:24