这里不用到强转换会报错,视频里没有用到却编译过了,求指点

big_chengzi 2020-01-08 08:28:27
void char_ws(unsigned char n);
int main(void)
{
int a = 1234567890;
unsigned char* p = (unsigned char*)&a; //先将a强转换为u8 疑问:视频示例没有用到强转换(源代码:unsigned char * p = &a;)
int i;
for(i = 3;i>=0;i--)
{
char_ws(p[i]);
}
return 0;
}


void char_ws(unsigned char n)
{
int i;
for (i = 1; i <= 8; i++)
{
if (n << 1 >= 256)
{
printf("1");
}
else
{
printf("0");
}
n = n << 1;
}
}
...全文
61 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin5161678 2020-01-09
  • 打赏
  • 举报
回复
把文件后缀名 从.cpp 改为 .c
寻开心 2020-01-09
  • 打赏
  • 举报
回复
现代编译器都会要求 做强制类型转换的 , 毕竟 int* 和 unsigned char * 类型是大不一样的, 应该是错误,而不是警告级别的

「已注销」 2020-01-08
  • 打赏
  • 举报
回复
试了下没报错,好像有个警告闪过去了,可能编译器问题

69,382

社区成员

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

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