好的我需要扩展代码,但这里有一些非常复杂的东西:
((Traces.Last=new SymbolSequence::Node)->Prev=(Discard.First=Processing1)->Prev)->Next=Traces.Last;
Run Code Online (Sandbox Code Playgroud)
我需要将这些赋值分配给语句,但我无法确定它的顺序.带括号的顺序让我困惑,是数学还是编译器做他想做的事情?
非常感谢.
该代码可能意为
Traces.Last = new SymbolSequence::Node;
Discard.First = Processing1;
Traces.Last->Prev = Discard.First->Prev;
Traces.Last->Prev->Next = Traces.Last;
Run Code Online (Sandbox Code Playgroud)
但是,由于它既访问Traces.Last又设置它而没有插入序列点,实际结果是未定义的.很可能编译器可能产生如下内容:
temp = Traces.Last;
Traces.Last = new SymbolSequence::Node;
Discard.First = Processing1;
Traces.Last->Prev = Discard.First->Prev;
Traces.Last->Prev->Next = temp;
Run Code Online (Sandbox Code Playgroud)
并且原始程序员想要类似的东西.
归档时间: |
|
查看次数: |
105 次 |
最近记录: |