C:避免频繁类型转换的高性能临时变量

标签 c performance variables temporary

((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/

相关文章:

c - 如何读取逗号作为 C 中下一个变量的标志?

c - 在 openssl TLS1.3 中, SSL_write 会产生 SSL_ERROR_WANT_READ 吗? SSL_read 会产生 SSL_ERROR_WANT_WRITE 吗?

node.js - NSolid SaaS 的不同计划包括哪些内容?

c# - 您是否在任何地方都使用 1-3 个字母的变量?

mysql - 根据函数的结果设置变量的值 - MySQL

c++ - "lossless" float 到字节的转换

c - 在程序中进行函数调用后,控制跳转到未指定的内存位置

performance - TSQL-设置多个变量的有效方法

Python/Scrapy/Selenium/PhantomJs - 性能

java - 在 Java 中使用字节和短数据类型时的处理器使用情况