对此我有几点想法。首先,分配全局变量可能更快,因为它们只在程序第一次启动时分配一次,而本地变量必须每次调用函数时都进行分配。其次,由于本地变量位于堆栈上,因此通过基指针寄存器访问它们,所以每次访问本地变量时都必须将基指针中存储的值减少;而全局变量直接通过数据段中的静态地址进行访问。我的想法准确吗?
对此我有几点想法。首先,分配全局变量可能更快,因为它们只在程序第一次启动时分配一次,而本地变量必须每次调用函数时都进行分配。其次,由于本地变量位于堆栈上,因此通过基指针寄存器访问它们,所以每次访问本地变量时都必须将基指针中存储的值减少;而全局变量直接通过数据段中的静态地址进行访问。我的想法准确吗?
volatile
,否则它很可能会将其优化为寄存器,而不是堆栈/本地变量。 - c z