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中的数据类型

相关推荐
崇山峻岭之间1 小时前
433遥控器解码
单片机
GeekArch2 小时前
第5讲:嵌入式场景二范式决策树:什么情况快写、什么情况严写
人工智能·stm32·单片机·mcu·物联网·决策树·机器学习
杨连江13 小时前
高含盐污水站铸铁潜污泵腐蚀失效机理及电化学阴极保护应用研究
经验分享
富唯智能14 小时前
CNC 机床上下料无人化方案|单台复合机器人对接 12 台 CNC
经验分享
炸膛坦客15 小时前
单片机开发工具篇:(九)MCU 芯片包的安装
单片机·嵌入式硬件
cszn202617 小时前
AI如何自动识别安全文明施工废标风险?智能评审项目实践
经验分享
智者知已应修善业20 小时前
【51单片机实现初始化数码管不显示按启动从0秒计时到60按暂停一次显示当前秒按2次恢复原始状态】2024-6-11
c语言·c++·经验分享·笔记·嵌入式硬件·算法·51单片机
Teacher.chenchong20 小时前
基于GIS、RS、VORS模型、CCDM模型、geodetecto、GWR模型集成的生态系统健康的耦合协调分析
经验分享
电气_空空21 小时前
基于LabVIEW的数据采集系统设计与实现
单片机·嵌入式硬件·labview
caimouse21 小时前
ReactOS BootCD 光盘布局完整深度分析
单片机·reactos