我尝试使用宏编写这个函数
unsigned int put_0_right(unsigned int value, int order)
{
int i;
for(i=0; i<order; i++)
value=clear_bit(value,i);
return value;
}
所以我写了这个
#define unsigned int mettre_0_droite(value, order)(\
{\
int i=0;\
for(i=0; i<order; i++)\
{value=clear_bit(value,i);}\
return value;\
})
但我收到此错误预期声明说明符或“{”标记之前的“...”
最佳答案
任务可能是做这样的事情。
#define mettre_0_droite(value, order) ((value) & (~((1ul << ((order) + 1)) - 1)))
代替循环
如果您不理解函数和宏之间的区别,您需要一本好的 C 书。
关于c - Marco 函数错误预期声明说明符或 '...' 之前的 '{' 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50566885/