我讨厌这样的语法问题,但我一直没能通过搜索找到答案。我不确定每个变量声明的含义。我对第三种猜测的最佳猜测是,它将逻辑和标签检查点的地址以及页面大小的倒数作为无符号长整型,然后将其重新命名为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