我想了解一下寄存器变量在C程序可执行文件中的处理方式,即在嵌入式系统和X86桌面PC中的确切位置(或寄存器)存储位置是什么?
你认为这种观点怎么样?(如果我错了,请纠正我)
假设我们在一个函数中声明/初始化了一个'int'数据类型的变量。通常它会进入堆栈段,并且只有在调用者调用包含局部变量的被调用者时,在该部分才会存在。但是,如果我们将上述局部变量声明为'register int',那么它也将进入堆栈段。但是运行时,由于'register'关键字造成的额外编译器插入代码,处理器将该局部变量从堆栈放入其通用寄存器位置,并从那里快速访问相同的变量。
它们之间唯一的区别在于运行时访问,它们之间没有内存加载差异。
__Kanu
你认为这种观点怎么样?(如果我错了,请纠正我)
假设我们在一个函数中声明/初始化了一个'int'数据类型的变量。通常它会进入堆栈段,并且只有在调用者调用包含局部变量的被调用者时,在该部分才会存在。但是,如果我们将上述局部变量声明为'register int',那么它也将进入堆栈段。但是运行时,由于'register'关键字造成的额外编译器插入代码,处理器将该局部变量从堆栈放入其通用寄存器位置,并从那里快速访问相同的变量。
它们之间唯一的区别在于运行时访问,它们之间没有内存加载差异。
__Kanu