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

相关推荐
蒋胜山21 分钟前
Excel 练习题(7)
经验分享·excel
LaughingZhu1 小时前
Product Hunt 每日热榜 | 2026-05-03
人工智能·经验分享·深度学习·神经网络·产品运营
m0_377108143 小时前
5月1日zzz
单片机
踏着七彩祥云的小丑3 小时前
嵌入式——认识电子元器件——晶体谐振器系列
单片机·嵌入式硬件
玩转单片机与嵌入式3 小时前
TinyML应用场景解析:动作识别!
人工智能·单片机·嵌入式硬件·嵌入式ai·ai+嵌入式
xiangw@GZ3 小时前
智能锁TouchKey的抗干扰设计-1.概述
单片机·嵌入式硬件
蒋胜山3 小时前
Excel 练习题(6)
经验分享·excel
这波不该贪内存的3 小时前
嵌入式开发避坑指南
单片机·嵌入式硬件
振南的单片机世界3 小时前
单片机是嵌入设备的“单芯片计算机”
单片机·嵌入式硬件