0
目前我正在試圖破譯別人的代碼,我也遇到過這樣的事情的:未知用途的指針操作
byte* d = new byte[n]; // Value of 'n' is determined at runtime.
byte* w1 = d + offset; // Value of 'offset' is constant and even.
...
for(int i = 0; i < imageCount; ++i){
w1 += d - w1 & 7; // At this point, 'd' didnt change, and w1 > d.
...
}
我不明白在循環指令不執行,這是使用。
指針'w1'用於以偏移量將數據寫入'd'。
然後他使用'd'寫入磁盤。
我在想這會是這樣的,但你能向我解釋這到底是怎麼回事嗎? – gdube
將其與相對於d的下一個8字節邊界對齊。例如,如果d是0x00000001,w1是0x00000002,它將對齊到0x00000009,而不是0x00000008 –
我剛剛添加了上面的解釋。 –