Я всегда делал что-то вроде #define
, например (VC ++):
#define NOP __asm{nop}
Тогда это может быть что-то другое для разных платформ, например (НКА):
#define NOP asm("nop")
Если нет встроенного языка ассемблера, вы можете выдумать что-нибудь разумное:
/* insert directives to prevent inlining and optimization */
void nop() {}
#define NOP (nop())
Это также может быть превращено в ничто для сборок, в которых вы не хотите:
#define NOP ((void)0)
Такого рода вещи могут происходить везде, где используются специфичные для платформы typedefs и т. Д.