一个例子类似这样: #ifdef __GNUC__ inline unsigned char _BitScanForward(unsigned long * Index, unsigned long Mask) { unsigned int EFlags = 0; __asm__ ("bsf %[Mask], %[Index];" "pushf;" "pop %[EFlags];" : [Index]"=r"(*Index), [EFlags]"=r"(EFlags) : [Mask]"r"(Mask)); return EFlags & 0x40; } #elif _MSC_BUILD #include <intrin.h> #endif