社区
C语言
帖子详情
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
打赏
收藏
unsigned char 和char 的问题
unsigned char buf[256]; fgets(buf, sizeof(buf)-1, fp) != NULL 这段代码我看别人代码中用没有错,为什么我用就报不能从unsigned char [256]到char *的错? 百思不得其解
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
你的没有分配空间。
c语言中
char
* 和
unsigned
char
* 的区别浅析
背景最近在项目中遇到了一个编译警告,是因为定义的变量为
char
[],而在使用时作为函数的
unsigned
char
*类型的参数调用。这个警告很容易避免,但是
char
*和
unsigned
char
*到底有什么区别呢,本文作一个简单的探讨。
char
和
unsigned
char
的区别在C中,默认的基础数据类型均为signed,如定义变量为int,long等,都为有符号的。如果要定义无符号类型,必须显
char
和
unsigned
char
,
char
* 和
unsigned
char
*的区别
在C语言中,默认的基础数据类型均为signed,如定义变量为int,long等,都为有符号的。如果要定义无符号类型,必须显式地在变量类型前加
unsigned
char
和
unsigned
char
区别 相同点:在内存中都是一个字节,8位(2^8=256),都能表示256个数字 不同点:
char
的最高位为符号位,因此
char
能表示的数据范围是-128~127,
unsigned
char
没有符号位,因此能表示的数据范围是0~255 实际使用中,如普通的赋值,读写文件和网络字节流都没有区别,不管最高位是
unsigned
char
*和string和
unsigned
char
[]的相互转换
因项目需要,涉及到
unsigned
char
*和string和
unsigned
char
[]的相互转换,记录一下各种方法: **string转为
unsigned
char
**[] string str = "ABCDE";
unsigned
char
ch[16] = {0}; /*注意:当字符串中部存在\0时,以下方法拷贝到字符数组中均会被截断*/ strcpy((
char
*)ch, str.c_str()); strncpy((
char
*)ch, str.c_str(), str.length(
java
unsigned
char
_
char
与
unsigned
char
的本质区别
在C中,默认的基础数据类型均为signed,现在我们以
char
为例,说明(signed)
char
与
unsigned
char
之间的区别首先在内存中,
char
与
unsigned
char
没有什么不同,都是一个字节,唯一的区别是,
char
的最高位为符号位,因此
char
能表示-128~127,
unsigned
char
没有符号位,因此能表示0~255,这个好理解,8个bit,最多256种情况,因此无...
c#
char
unsigned
_
char
和
unsigned
char
--数据类型区别
在C中,默认的基础数据类型均为signed,现在我们以
char
为例,说明(signed)
char
与
unsigned
char
之间的区别首先在内存中,
char
与
unsigned
char
没有什么不同,都是一个字节,唯一的区别是,
char
的最高位为符号位,因此
char
能表示-128~127,
unsigned
char
没有符号位,因此能表示0~255,这个好理解,8个bit,最多256种情况,因此无...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章