c++ - 对结构进行操作并将结果分配给同一结构是不好的做法吗?为什么?

标签 c++ c performance kernel structure

我不记得见过像这个假设片段这样的代码示例:

cpu->dev.bus->uevent = (cpu->dev.bus->uevent) >> 16; //or the equivalent using a macro  

其中大型结构中的成员使用指针取消引用,对其进行操作,并将结果分配回结构的同一字段。

内核似乎是一个经常出现这种大型结构的地方,但我还没有看到它的例子,并对原因产生了兴趣。

这是否有性能原因,可能与跟随指针所需的时间有关?它只是不是很好的风格吗?如果是,首选的方式是什么?

最佳答案

该语句在语法上没有任何问题,但这样编写更容易:

cpu->dev.bus->uevent >>= 16;

关于c++ - 对结构进行操作并将结果分配给同一结构是不好的做法吗?为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27011440/

相关文章:

c++ - 如何简洁地创建一个 shared_ptr?

c - 虚拟地址系统上的进程地址空间

c - 为什么我在使用 MATLAB 编译器时没有看到显着的加速?

与具有几百万行的表上的 "<>"相比,SQL Server "="运算符非常慢

c++ - 您的计算机缺少 tbb.dll

c++ - 如何从 dll 导入公共(public)成员

c++ - 从不同格式的文件中读取行 C++

c++ - 从 C++ 链接到 C 库 : why isn't extern always needed?

c - 有 gSOAP 的轻量级替代品吗?

php - stream_get_contents 是否比 file_get_contents 级别更低且速度更快?