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

相关推荐
亿道电子Emdoor14 分钟前
【Altium】原理图中网络标签作用范围的设置
单片机·嵌入式硬件
源代码•宸21 分钟前
Golang语法进阶(定时器)
开发语言·经验分享·后端·算法·golang·timer·ticker
风行男孩21 分钟前
stm32基础学习——串口(USART)的基本使用
stm32·嵌入式硬件·学习
点灯小铭23 分钟前
基于单片机的多模式档位调节与过热保护风扇设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
三流架构师35 分钟前
高中数学资源合集
经验分享
星源~1 小时前
Zephyr - MCU 开发快速入门指南
单片机·嵌入式硬件·物联网·嵌入式开发·zephyr
星源~1 小时前
zephyr-开发环境配置疑难问题解决
单片机·嵌入式硬件·物联网·项目开发
BMS小旭1 小时前
CubeMx-DMA
单片机·学习·cubemx·dma
Arciab1 小时前
51单片机_LED点阵屏
单片机·嵌入式硬件·51单片机
电子小白12310 小时前
第13期PCB layout工程师初级培训-1-EDA软件的通用设置
笔记·嵌入式硬件·学习·pcb·layout