//o/p when i/p is 16 and 2 is 4 and if variable is int then o/p will be 20;
#define SETBIT(A,B) A|1<<B
int main(){
char n,pos;
printf("Enter a value");
scanf("%d",&n);
printf("Enter position");
scanf("%d",&pos);
printf("Value after setting %d",SETBIT(n,pos));
}
答案 0 :(得分:0)
对于*scanf
函数,d
转换说明符期望其对应参数的类型为int *
;如果不是这种情况,则行为未定义,并且几乎任何结果都是可能的。
如果您想char
使用pos
和n
,则必须在%hhd
来电中使用%d
代替scanf
。