我討厭這樣的語法問題,但我一直沒能通過搜索找到答案。我不確定每個變量聲明的含義。我對第三種猜測的最佳猜測是,它將邏輯和標籤檢查點的地址以及頁面大小的倒數作爲無符號長整型,然後將其重新命名爲void指針。代碼是從這裏:http://nmav.gnutls.org/2011/12/self-modifying-code-using-gcc.html無法弄清楚這個c語法是什麼
int (*my_printf) (const char *format, ...);
void (*my_exit) (int);
void *page =
(void *) ((unsigned long) (&&checkpoint) &
~(getpagesize() - 1));
謝謝!
前兩個是函數指針 – FDinoff
是的,這正是它所做的。不知道爲什麼你需要問這個。你所做的只是用言語表達這個表達。 –
請注意,「標籤地址」('&& checkpoint',here)是一個GNU C擴展,並且可能無法在其他編譯器中使用。 – torek