int i{0} 总是比 int i = 0 快吗?

Does always int i{0} be faster then int i = 0?

int i{0}; //(1)
int i = 0; //(2)

我的理解是否正确,在第一种情况 (1) 中,变量 i 将以 0 作为其值创建,而在 (2) 中,它将在没有值的情况下创建,然后分配一个值 0,所以(1) 总是比 (2) 快?

但似乎大多数(所有?)现代编译器仍会在后台优化 (2) 以使其与 (1) 相同?

使用 Brace Initialization 初始化变量会在编译时执行额外的检查(对运行时没有影响)。 .例如,如果您在花括号内输入浮点文字,则会引发错误。带等号的初始化会被编译器优化。尽可能使用大括号初始化。我希望这能回答你的问题