C 什么时候应该使用和不使用寄存器变量?有缺点吗?
可能重复:C 什么时候应该使用和不使用寄存器变量?有缺点吗?,c,variables,types,C,Variables,Types,可能重复: 如果我把几乎所有的东西都声明为寄存器变量呢?这会加快我的程序是吗?还是有什么缺点。因为我很难选择要声明为寄存器变量的变量。您不能获取寄存器变量的地址 除此之外,编译器擅长寄存器分配,您几乎不想自己将变量声明为register(编译器可以随意忽略此提示——如果主要编译器假装register不做任何事情,我也不会感到惊讶,除非被告知不要优化代码).编译器通常比您优化得更好,不要在这方面花费时间。另请参见:但我在某个地方读到,它会使我的程序更快?现在过时了吗?@vincentbelkin
如果我把几乎所有的东西都声明为寄存器变量呢?这会加快我的程序是吗?还是有什么缺点。因为我很难选择要声明为寄存器变量的变量。您不能获取寄存器变量的地址
除此之外,编译器擅长寄存器分配,您几乎不想自己将变量声明为register(编译器可以随意忽略此提示——如果主要编译器假装
register
不做任何事情,我也不会感到惊讶,除非被告知不要优化代码).编译器通常比您优化得更好,不要在这方面花费时间。另请参见:但我在某个地方读到,它会使我的程序更快?现在过时了吗?@vincentbelkin:没有。寄存器分配是编译器现在做得很好的事情(读:比你做得好)。@vincentbelkin:是的,这些信息已经过时了。在某些情况下,register
关键字甚至可能会使程序变慢(如果编译器接受该关键字并且寄存器分配结果是次优的)@BartvanIngenSchenau谢谢!因为关于C的旧书一直在讲述它的优化。很高兴我选择了收拾残局,否则我可能会继续这样做。@vincent-你不应该读那么旧的书!在个人电脑上,仔细使用寄存器
可以在1985年以前改进代码。之后,编译器将比人类做得更好。