C++中内置类型的const修饰符的开销

bar*_*kin 4 c++ const overhead

我更喜欢const在我编写的函数中为所有内置参数添加修饰符.例如:

void foo(const int arg1, const double arg2);
Run Code Online (Sandbox Code Playgroud)

对我来说比以下更好:

void foo(int arg1, double arg2);
Run Code Online (Sandbox Code Playgroud)

在代码审查之后,我被告知const修饰符在应用于整数和内置类型时会带来开销.这是真的吗?为什么?

谢谢,

jal*_*alf 7

它没有比一个更多的开销typedef.你的同事错了.

如果你想说服他,打印出两种变体的反汇编,并告诉你的同事他们是一样的.

但是,将const限定符添加到这样的基本类型是完全没有意义和徒劳的.无论如何它们都被复制了,修改它们没有任何害处.将它们变成const是没有任何好处的.

  • @Oli:正如提问者所做的那样,将`const`放在函数的非定义声明中是没有意义的(在jalf的意义上).你描述的有意义涉及将`const`放在函数的定义中,但问题没有显示任何定义.声明和定义在字节方面相同,也可能有一些价值,而不仅仅是等价的,在这种情况下你也可以将它推到声明中,并说这样做并非毫无意义. (2认同)