小编Tim*_*son的帖子

C函数中的静态局部变量会影响执行速度吗?

我知道最好不要在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)

提前致谢 :)

c optimization static

3
推荐指数
1
解决办法
301
查看次数

标签 统计

c ×1

optimization ×1

static ×1