unsigned char 和char 的问题

s104892992 2009-11-12 08:21:08
unsigned char buf[256];
fgets(buf, sizeof(buf)-1, fp) != NULL
这段代码我看别人代码中用没有错,为什么我用就报不能从unsigned char [256]到char *的错?
百思不得其解
...全文
169 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
babytech 2009-11-13
  • 打赏
  • 举报
回复
对于这种warning,做一下强制转换就可以了
haohaokingXP 2009-11-13
  • 打赏
  • 举报
回复

unsigned char buf[256];
fgets(buf, sizeof(buf)-1, fp) != NULL


有的平台和编译器默认char等于 unsigned char的,有的则是signed char。

通常都是signed char,你的编译是正常的。
Caballeroo 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xixiaoliu 的回复:]
fgets((char *)buf, sizeof(buf)-1, fp)
[/Quote]

这个应该是会报warning,不应该报错的!
nirong 2009-11-12
  • 打赏
  • 举报
回复
同上
squiffy 2009-11-12
  • 打赏
  • 举报
回复
C++编译器会报错。

c编译器不报错。

c++要求指针类型和函数声明一致。
xixiaoliu 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 s104892992 的回复:]
引用 4 楼 xixiaoliu 的回复:
fgets((char *)buf, sizeof(buf)-1, fp)

可为什么别人的代码没有错呢?
[/Quote]

你的编译器更严格一点,是好事
s104892992 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xixiaoliu 的回复:]
fgets((char *)buf, sizeof(buf)-1, fp)
[/Quote]
可为什么别人的代码没有错呢?
s104892992 2009-11-12
  • 打赏
  • 举报
回复
我想知道unsigned char* 是不是会自动转化成char*?
xixiaoliu 2009-11-12
  • 打赏
  • 举报
回复
fgets((char *)buf, sizeof(buf)-1, fp)
kouwenlong 2009-11-12
  • 打赏
  • 举报
回复
那你的代码就全一点。
s104892992 2009-11-12
  • 打赏
  • 举报
回复
unsigned char buf[256],这样不算分配空间吗?
别人代码中也是这样定义后使用,我的也是
kouwenlong 2009-11-12
  • 打赏
  • 举报
回复
你的没有分配空间。

69,382

社区成员

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

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