c++ - 嵌入式 C++,有什么技巧可以避免仅用于返回堆栈上的值的局部变量吗?

标签 c++ c embedded stack local

我有一个局部变量,它仅用于检查另一个函数的结果并在满足特定条件时将其传递。大多数时候,永远不会满足该标准。有什么办法可以避免这个“额外”的地方吗?

我的二进制文件只有大约 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/

相关文章:

c - Windows 上与 C 的 TCP 连接 [服务器/客户端]

c - 在多个应用程序之间共享内存中的 SQLite 数据库

c - 向现有固件添加代码

c - 是否有一种节省空间的方法来存储和检索数据集的顺序?

c++ - List::insert 如何处理数组

c++ - 如何防止编译器忽略我未显式实例化的类型?

c++ - 尝试在 MinGW 的 G++ 中链接 SDL 失败得很惨.. :/

c++ - opengl-es 二维绘图库

rust - Rust中的中断是否可以使用全局可变数据?

c++ - 在 C++ 中检查变量类型