众所周知,C++ 弃用了 register
1 | [Warning] ISO C++17 does not allow 'register' storage class specifier [-Wregister] |
但是,我们可以通过 asm
内联汇编关键字,来继续使用 register
,示例:register int i asm ("rax") = 0;
而 64 位系统一般都有 16 个寄存器,可以把常用变量全塞进去(rax rbx rcx rdx rsp rbp rsi rdi r8 r9 r10 r11 r12 r13 r14 r15)
rbp 是栈底指针,不建议使用,可能会报错 [Error] bp cannot be used in 'asm' here