用变量=getchar清缓存为啥说定义的变量没有用到

#include <stdio.h>
#include <math.h>
#include <string.h>
int main()
{
int i,T,a[33],sum;
char ch[33],c;
scanf("%d",&T);
c=getchar();
for(int t=0;t<T;t++)
{
gets(ch);
sum=0;
for(i=0;i<strlen(ch);i++)
{
a[strlen(ch)-1-i]=ch[i]-'0';
}
for(i=0;i<strlen(ch);i++)
{
sum=sum+a[i]*pow(2,i);
}
printf("%d\n",sum);
}
return 0;
}
这是一道二进制转换为十进制的题目,一共有T组测试数据,由于题目要求需要将31位以下的二进制串都能转换成十进制,但由于longlong范围不够只能用数组存储,我想问的是,我定义的c是用来清缓存区scanf的回车的,但是为什么最后编译出现warning说我的变量c申明了却是unused?用的codeblock,C语言

是不是没有保存,保存一下重新编译试试。
因为c只是用来接收回车符,所以c这个变量可以不要,c = getchar();直接用getchar()就可以了,然后把声明的c删掉,这样就可以消除这个警告了。(一些警告忽略就行,对代码没什么影响)

清理缓存,不用赋值给变量c,可以删掉变量c
直接调用getchar();就行