このような構文の質問は嫌いですが、検索しても答えを見つけることができませんでした。これらの変数宣言のそれぞれが何を意味するのかはわかりません。3番目の私の最良の推測は、ラベルチェックポイントのアドレスとページのサイズの逆数の論理積を取り、それをunsigned longとしてキャストし、次に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));
ありがとう!