我想清理我的彙編代碼和povide的方式通過宏調用「NOP」多次:調用C預處理宏多次(通過可變)
#define NOP() asm(" nop")
#define NOP_N(N) \
NOP(); \
NOP(); \
.... call NOP() N times
我可以」如果這在宏中是可能的。
顯然,對於性能方面的原因,我不希望這樣的事情:
#define NOP_N(n) { register int i; for(i=0;i<n;i++) asm(" nop"); }
這違背了NOP的目的:
L17: ; NOP_N(3);
nop
addi 1,r0 ; Unsigned
cmpi 3,r0
blo L17
的代碼是C語言和彙編,所以沒有C++可以參與到這裏。此外,編譯器是相當老,不支持可變宏...
如何將它寫爲'N'的宏,'調用NOP()N次',在編碼時必須知道N# –
@Mogria:那麼如果xgbi可以使用C++,那麼這可以相當簡單地完成通過模板元編程,並且不需要任何預處理器技巧。 – jamesdlin
可能的重複:http://stackoverflow.com/q/11532883/946850 – krlmlr