((My_LengthilyNamedClass *)this)->someMember
...我已经厌倦了这些出现在我的代码库中,甚至多次出现在同一个函数中。
在 C 中处理此类事情的适当方法是什么?我知道将其复制到具有较短名称的正确类型的堆栈/自动变量是避免强制转换的一种方法,但我认为这会导致额外的、可能不必要的堆栈分配。
是否可以在单个函数中使用 define
来使这更容易? define
是要走的路吗?由于这是实时处理框架的代码,而且这些东西无处不在,我希望坚持使用性能最高的代码。
最佳答案
编译器非常擅长优化。我认为您不会有任何问题:
My_LengthilyNamedClass *const ptr = this;
如果你真的很偏执,你可以使用宏:
#define THIS ((My_LengthilyNamedClass *)this)
THIS->someMember = 5;
#undef THIS
关于C:避免频繁类型转换的高性能临时变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27534784/