frame-address.c
来自「linux下编程用 编译软件」· C语言 代码 · 共 44 行
C
44 行
int check_fa_work (const char *, const char *) __attribute__((noinline));int check_fa_mid (const char *) __attribute__((noinline));int check_fa (char *) __attribute__((noinline));int how_much (void) __attribute__((noinline));int check_fa_work (const char *c, const char *f){ const char d = 0; if (c >= &d) return c >= f && f >= &d; else return c <= f && f <= &d;}int check_fa_mid (const char *c){ const char *f = __builtin_frame_address (0); /* Prevent a tail call to check_fa_work, eliding the current stack frame. */ return check_fa_work (c, f) != 0;}int check_fa (char *unused){ const char c = 0; return check_fa_mid (&c);}int how_much (void){ return 8;}int main (void){ char *unused = __builtin_alloca (how_much ()); if (!check_fa(unused)) abort(); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?