我认为这是不可能的,但我之前已经看过很多疯狂的预处理器魔法,所以我想我会问。预处理器可以在两点之间的每个语句之后插入代码吗?
例如,我有以下代码:
// ...
dy2 = dy2 + (rand()%3) - 1; swapTask();
if (dy2 < D2Upper) dy2 = D2Upper; swapTask();
if (dy2 > D2Lower) dy2 = D2Lower; swapTask();
dy2 = (dy2+9) >= dy1 ? dy1-9 : dy2; swapTask();
if (direction2 > 0)
{
memcpy(&pk[dy2+0][direction2+7], "_", 1); swapTask();
memcpy(&pk[dy2+1][direction2+6], "/o\\", 3); swapTask();
memcpy(&pk[dy2+2][direction2+4], "</ _<", 5); swapTask();
memcpy(&pk[dy2+3][direction2+3], "</ /", 4); swapTask();
memcpy(&pk[dy2+4][direction2+2], "</ ==x", 6); swapTask();
memcpy(&pk[dy2+5][direction2+3], "/ \\", 4); swapTask();
memcpy(&pk[dy2+6][direction2+2], "//)__)", 6); swapTask();
memcpy(&pk[dy2+7][direction2+0], "<<< \\_ \\_", 9); swapTask();
if (++direction2 > D2Right)
direction2 = -direction2; swapTask();
}
// ...
我需要在每个声明后调用swapTask();
。随着时间的推移,这会变得很麻烦(特别是如果我希望它看起来很漂亮并且对齐)。
最初我想过以编程方式将它添加到每一行,但这显然会打破无块if
语句。然后我想在每个分号后添加它,但这显然打破了for
语句。是否有任何预处理器,编译器或其他魔法方法可以在每行之后调用它?感谢。