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

相关推荐
金海境科技11 分钟前
【服务器数据恢复】H3C华三Ceph分布式存储文件丢失数据恢复案例
服务器·经验分享·分布式·ceph
保护我方头发丶14 分钟前
ESP功能介绍
c语言·嵌入式硬件
国科安芯22 分钟前
AS32A601型MCU芯片如何进行IAP升级?
网络·单片机·嵌入式硬件·安全·risc-v·安全性测试
啃硬骨头25 分钟前
Aurix TC387 Ethernet代码解析之七_MAC的LwIP初始化4
单片机·嵌入式硬件
联蔚盘云25 分钟前
数据推送方案-Azure Storage
经验分享
草莓熊Lotso1 小时前
Python 流程控制完全指南:条件语句 + 循环语句 + 实战案例(零基础入门)
android·开发语言·人工智能·经验分享·笔记·后端·python
詩不诉卿1 小时前
超简单stm32cubemx+lwip+yt8512c工程搭建记录
stm32·单片机·嵌入式硬件
亿道电子Emdoor1 小时前
【Arm】MCU和SOC的区别
arm开发·单片机·嵌入式硬件
Vizio<1 小时前
STM32HAL库开发笔记-系统定时器与中断闪灯
笔记·stm32·单片机
纳米软件11 小时前
IGBT模块测试项目集合——纳米软件
单片机·嵌入式硬件·模块测试