如果
,那我就更聪明了干杯,
答案 0 :(得分:3)
它们可能更快,但并非必须如此 底线是使用const正确性来防止诚实的程序员犯错误并使代码更直观而不是提高性能。大多数现代编译器都会自动处理它。
答案 1 :(得分:0)
通常,编译器不会“注意”某些内容是否为const
,它使用其他启发式方法来确定指针是否需要在使用之间重新加载。
当然,如果你有一个将指针作为参数的函数,它将完全没有区别。如果你有一个你使用的全局变量,那么编译器可以考虑“好吧,它是const
,所以我不会每次都重新加载它”。但它实际上不太可能产生影响。无论如何,指针的并行更改是UB(您应该使用原子变量)。如果在代码中间调用函数,并且编译器无法内联[或“跟随”]函数,则无论如何都很可能必须重新加载指针。