[我知道inline
关键字使编译器更容易内联函数,尽管该决定取决于编译器,并且GNU扩展名__attribute__((always_inline))
强制编译器内联它。相应地,有没有...
__attribute__((always_register)) register int foo = 678;
...或类似的东西?
GCC通过使用关键字asm
and register
为本地变量指定寄存器的方法:
asm
注意引号:
此功能唯一受支持的用途是为调用扩展
register
时的输入和输出操作数。
此功能在某些体系结构的Linux内核中使用,以访问存储在通用寄存器之一中的线程本地存储。这是在register int *foo asm ("r12");
上实现asm
宏的方式:
current
这种用法很有趣,因为它在全局范围内使用ARC architecture关键字,而它在标准C语言中只能与局部变量一起使用。