C++ (与此一致):如果它适合于寄存器,则按值传递。否则请参考。@Sodacader:我不知道你所说的双打问题是什么意思。链接答案中的建议很好,我只想提到,不仅内置类型,而且用户定义的大小相等的类型:struct X{int X;}将具有与int相同的行为。此外
C++ (与此一致):如果它适合于寄存器,则按值传递。否则请参考。@Sodacader:我不知道你所说的双打问题是什么意思。链接答案中的建议很好,我只想提到,不仅内置类型,而且用户定义的大小相等的类型:struct X{int X;}将具有与int相同的行为。此外,c++,performance,function,constants,pass-by-reference,C++,Performance,Function,Constants,Pass By Reference,(与此一致):如果它适合于寄存器,则按值传递。否则请参考。@Sodacader:我不知道你所说的双打问题是什么意思。链接答案中的建议很好,我只想提到,不仅内置类型,而且用户定义的大小相等的类型:struct X{int X;}将具有与int相同的行为。此外,如果函数将进行复制,那么最好在接口中提前复制(按值传递),因为这允许编译器优化临时变量。你可能想读书。 void foo1(SomeType& st) { ... } void foo2(const SomeType&
(与此一致):如果它适合于寄存器,则按值传递。否则请参考。@Sodacader:我不知道你所说的双打问题是什么意思。链接答案中的建议很好,我只想提到,不仅内置类型,而且用户定义的大小相等的类型:
struct X{int X;}代码>将具有与int
相同的行为。此外,如果函数将进行复制,那么最好在接口中提前复制(按值传递),因为这允许编译器优化临时变量。你可能想读书。
void foo1(SomeType& st)
{
...
}
void foo2(const SomeType& st)
{
...
}
void foo3(SomeType st)
{
...
}
void foo4(SomeType* st)
{
...
}