我讨厌问这样的语法问题,但我无法通过搜索找到答案。我不确定每个变量声明的含义。我对第 3 个的最佳猜测是,它采用标签检查点地址的逻辑和以及页面大小的倒数,将其转换为无符号长整数,然后将其重新转换为 void 指针。代码来自这里: http: //nmav.gnutls.org/2011/12/self-modifying-code-using-gcc.html
int (*my_printf) (const char *format, ...);
void (*my_exit) (int);
void *page =
(void *) ((unsigned long) (&&checkpoint) &
~(getpagesize() - 1));
谢谢!