我有一个局部变量,它仅用于检查另一个函数的结果并在满足特定条件时将其传递。大多数时候,永远不会满足该标准。有什么办法可以避免这个“额外”的地方吗?
我的二进制文件只有大约 1MB 的存储空间,并且我有数千个函数调用遵循这种模式。我知道这是一件小事,但如果有更好的模式我很想知道!
SomeDataType myclass::myFunction()
{
SomeDataType result; // do I really need this local???
// i need to check the result and pass it on if it meets a certain condition
result = doSomething();
if ( ! result ) {
return result;
}
// do other things here
...
// normal result of processing
return SomeDataType(whatever);
}
最佳答案
SomeDataType
有多复杂?它有很多成员吗?它在构造函数中做了很多工作吗?如果是这样,那么我会避免这种情况。如果没有,您可能会发现编译器会为此生成良好的代码。例如,编译器可能会很好地处理整数类型。
对于这样的问题,答案几乎总是:查阅编译器的汇编输出。
关于c++ - 嵌入式 C++,有什么技巧可以避免仅用于返回堆栈上的值的局部变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2377940/