我不记得见过像这个假设片段这样的代码示例:
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/