我知道最好不要在C中使用寄存器变量,除非你有特殊的理由认为你做出了比现代编译器更好的决定.
由于局部静态变量在函数调用之间,因此在执行速度很重要时使用它们是否有意义?
我正在研究6502仿真器(仅用于娱乐和学习).大多数模拟操作根本不需要局部变量,但有些操作根本不需要.我在下面粘贴了一个例子.基本上,我想知道将这些变量声明为静态是否有任何好处.不是在函数调用之间保留它们的值,而是为了防止每次重新分配它们的存储空间.这是另一种情况,最好将它留给编译器吗?
static void
op_asl_zero_page_x (CPU *cpu)
{
unsigned int result;
Word addr;
Byte b;
addr = zero_page_addr_XX (cpu, cpu->x);
b = bus_read (cpu->bus, addr);
/* Copy highest bit to carry */
cpu->status[CPU_STATUS_C] = ((b & 0x80) != 0);
result = (unsigned int)b << 1;
bus_store (cpu->bus, addr, result);
cpu_set_N_Z (cpu, result);
}
Run Code Online (Sandbox Code Playgroud)
提前致谢 :)