欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 艺术 > char表示有符号,还是无符号

char表示有符号,还是无符号

2025/4/10 7:23:34 来源:https://blog.csdn.net/weixin_42550185/article/details/147030029  浏览:    关键词:char表示有符号,还是无符号

编译器默认char是8位无符号数据类型,因此取值范围为0 ~ 255。如果在配置中设置“--signed_chars”,char就是8位有符号数据,取值范围为-128 ~ 127。建议在以后程序设计中,使用编译器的默认配置,不建议搞不兼容的配置。如果不清楚,就用int8_t,s8,uint8_t和u8来声明变量。

1、按照默认配置,测试程序如下:

void test_function(void)

{

  char Value;   //声明有符号8位变量Value

 char* pValue; //声明“signed char*指针变量”pValue

  Value=1;       //将1保存到变量Value中;

  pValue=&Value; //读取Value的地址,然后将这个地址保存到指针变量pValue中;

  (*pValue)++;   //由于pValue是指向Value的存储单元,执行到此,Value=2;

}

2、如果需要将char指定为8位有符号的数据类型,配置如下:

 设置“--signed_chars”,测试程序如下:

void test_function(void)

{

  char Value;   //声明有符号8位变量Value

 char* pValue; //声明“char*指针变量”pValue

  Value=1;       //将1保存到变量Value中;

  pValue=&Value; //读取Value的地址,然后将这个地址保存到指针变量pValue中;

  *pValue=-2;     //由于pValue是指向Value的存储单元,执行到此,Value=2;

  (*pValue)++;   //由于pValue是指向Value的存储单元,执行到此,Value=-1;

}

3、MDK-ARM中的数据类型

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词