我是汇编语言的新手。似乎 gcc 在 intrin.h 中没有像 MSVC 那样的 _bittestandset 函数,所以我实现了一个新函数。这个在linux下工作正常,但是在winVista机器上的mingw就出错了,代码是:
inline unsigned char _bittestandset(unsigned long * a, unsigned long b)
{
__asm__ ( "bts %1, %[b]"
: "=g"(*a)
: [b]"Ir"(b), "g"(*a) );
return 0;
}