一个编译警告怎么也改不掉,请大家帮助

sabirer 2009-07-17 02:02:24
initbase.c 在函数clog中:
471:警告:由于数据范围所致,比较结果永远为真
489:警告:由于数据范围所致,比较结果永远为真

...
short i,g,k;
unsigned char clChar;
char *abuf,*hbuf;
char fname[100];
time_t timebuf;
FILE *fp;
...

for(k=0; k<16; k++, abuf++)
fprintf(fp, "%c",(*abuf>32) ? ((*abuf<128) ? *abuf : '*') : '.'); //line 471
for(k=0; k < i; k++, abuf++)
fprintf(fp, "%c",(*abuf>32) ? ((*abuf<128) ? *abuf : '*') : '.'); //line 489
...

...全文
40 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hit_flying 2009-07-17
  • 打赏
  • 举报
回复
4楼正解
gmting 2009-07-17
  • 打赏
  • 举报
回复
*abuf是 char型的, (-127~127), *abuf<128当然一直为真了.
jlp999 2009-07-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lw1a2 的回复:]
char的范围是多少?
[/Quote]

char是[-128, 127]
unsigned char是[0, 255]
赵文波 2009-07-17
  • 打赏
  • 举报
回复
char 的取值是-128到127....当然永远小于128了
goodname 2009-07-17
  • 打赏
  • 举报
回复
或许应该是unsigned char *abuf;
lw1a2 2009-07-17
  • 打赏
  • 举报
回复
char的范围是多少?
sabirer 2009-07-17
  • 打赏
  • 举报
回复
环境是linux redhat 5.0 + gcc

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧