【☠️️社死现场の老板来了☠️️】小伙,搞C语言嵌入式开发这么久了,还不知道u8、u16、u32、s8、s16、s32是什么意思啊?

article/2025/11/2 11:00:27

在这里插入图片描述

老板来了:

糖糖小伙,你搞C语言嵌入式开发这么久了,我来考考你u8、u16、u32、s8、s16、s32是什么意思啊?你要是回答的让我满意了,给你升职加薪,从此走上人生巅峰呦~

报告老板:

作为C语言后入式开发之王,额、、、说错了。呸,呸,呸,C语言嵌入式开发的皇者,这点小问题怎么会难倒本帅比呢?

首先开门见山,一点也不慌:

u8是unsigned char,u16是unsigned short,u32是unsigned long;s8是signed char,s16是signed short,s32是signed long。

然后娓娓道来,是时候展示一波实力了:

  • 显而易见,u就是unsigned的缩写,s就是signed的缩写,8就表示8个二进制位(一个字节),16就表示16个二进制位(两个字节),32就表示32个二进制位(四个字节)。
  • 这样写的目的,是为了提高跨平台的移植性与兼容性。不同平台数据类型定义都不尽相同,一套代码要想兼容各个平台,必须要达到数据类型一致,防止出现二义问题(例如int在VC6.0里就占用4个字节,但是在Turbo C2.0里就占2个字节,使用u16就统一了定义,确保跨平台的移植性;另外VC中long int 和 int是没有区别的,两种类型均用4个字节存放数据)。
  • 使用typedef关键字来为变量起别名方便了大家的编码工作。这种写法简练,意义明确,我们在标准头文件中还是以后的编程实践中都会大量使用到。

附录整型数据类型:

数据类型
注意,超长整型和无符号超长整型是在 C++11 中引入的。

番外篇:long类型到底是4字节还是8字节

不过肯定有人提出异议了,long类型在linux64位系统下用gcc9.1编译器环境下就是8个字节啊!唉,我只能说具体问题具体分析了,不同调试环境下部分类型会有差异(32位系统与win64环境下,long为4字节;linux64环境下,long为8字节),我们最靠谱的就是使用**sizeof()**关键字打印一下长度,这个肯定最准了,万变不离其宗!

#include <iostream>
using namespace std;
int main() {cout << "char size is:" << sizeof(char) << endl;cout << "short size is:" << sizeof(short) << endl;cout << "int size is:" << sizeof(int) << endl;cout << "long size is:" << sizeof(long) << endl;cout << "long long size is:" << sizeof(long long) << endl;
}

最后献上示例:

stdint.h文件:

 /* TYPE DEFINITIONS */
typedef signed char int8_t;
typedef short int16_t;
typedef long int32_t;
typedef long long int64_t;
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned long uint32_t;
typedef unsigned long long uint64_t;

stm32f10x.h文件 中:

/*!< STM32F10x Standard Peripheral Library old types (maintained for legacy purpose) */
typedef int32_t  s32;
typedef int16_t s16;
typedef int8_t  s8;
typedef const int32_t sc32;  /*!< Read Only */
typedef const int16_t sc16;  /*!< Read Only */
typedef const int8_t sc8;   /*!< Read Only */
typedef __IO int32_t  vs32;
typedef __IO int16_t  vs16;
typedef __IO int8_t   vs8;
typedef __I int32_t vsc32;  /*!< Read Only */
typedef __I int16_t vsc16;  /*!< Read Only */
typedef __I int8_t vsc8;   /*!< Read Only */
typedef uint32_t  u32;
typedef uint16_t u16;
typedef uint8_t  u8;
typedef const uint32_t uc32;  /*!< Read Only */
typedef const uint16_t uc16;  /*!< Read Only */
typedef const uint8_t uc8;   /*!< Read Only */
typedef __IO uint32_t  vu32;
typedef __IO uint16_t vu16;
typedef __IO uint8_t  vu8;
typedef __I uint32_t vuc32;  /*!< Read Only */
typedef __I uint16_t vuc16;  /*!< Read Only */
typedef __I uint8_t vuc8;   /*!< Read Only */

使用的头文件示例:

#ifndef _MINTS_TYPE_H_
#define _MINTS_TYPE_H_#ifndef _MSC_VER
#include <stdint.h>
#endif#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus *//* Type definition */
/*-----------------------------------------------------------------------------
System public files are strictly prohibited to modify
------------------------------------------------------------------------------*//* windows visual studio compiler */
#if defined(_MSC_VER)
typedef signed char     s8;
typedef unsigned char   u8;
typedef signed short    s16;
typedef unsigned short  u16;
typedef signed int      s32;
typedef unsigned int    u32;
typedef __int64         s64;
typedef unsigned __int64 u64;/* gcc, xcoder, intel or other C99 support compiler */
#else   
typedef int8_t          s8;
typedef uint8_t         u8;
typedef int16_t         s16;
typedef uint16_t        u16;
typedef int32_t         s32;
typedef uint32_t        u32;
typedef int64_t         s64;
typedef uint64_t        u64;#endif //_MSC_VER#ifdef __cplusplus
}
#endif  /* __cplusplus */#endif /* _MINTS_TYPE_H_ */

引经据典:

http://c.biancheng.net/cpp/html/100.html
http://c.biancheng.net/view/1318.html
http://www.cplusplus.com/reference/cstdint/
https://www.keil.com/dd/docs/arm/st/stm32f10x/stm32f10x.h
http://www.qnx.com/developers/docs/6.4.1/dinkum_en/c99/stdint.html>

结束寄语

有关嵌入式数据类型的介绍就到此结束啦!下篇博文与各位再见面~

写博不易,如蒙厚爱,赏个关注,一键三连~~点赞+评论+收藏🤞🤞🤞,感谢您的支持~~

在这里插入图片描述


http://chatgpt.dhexx.cn/article/rAYfS8gE.shtml

相关文章

C语言中vu16什么意思,15.stm32 数据类型的定义(常用的U8,U16,U32到底代表什么)

满意答案 月冰p莹月 2020.09.14 采纳率&#xff1a;48% 等级&#xff1a;12 已帮助&#xff1a;9104人 去百度文库&#xff0c;查看完整内容> 内容来自用户:尘客i 在KeilMDK开发环境里&#xff0c;比如一个无符号32位整形数据会有很多种表示方法&#xff1a; 1&#xff0…

C语言中u8 u16 u32含义,有关stm32的问题,程序里面的u8、u16这些是什么意思啊

u8是unsigned char&#xff0c;u16是unsigned short&#xff0c;u32是unsigned long。 u8&#xff0c;u16&#xff0c;u32都是C语言数据类型&#xff0c;分别代表8位&#xff0c;16位&#xff0c;32位长度的数据类型&#xff0c;一个字节是8位&#xff0c;所以u8是1个字节&…

C语言中u8 u16 u32含义,有关stm32的问题,程序里面的u8、u16的含义

u8是unsigned char&#xff0c;u16是unsigned short&#xff0c;u32是unsigned long。 ; u8&#xff0c;u16&#xff0c;u32都是C语言数据类型&#xff0c;分别代表8位&#xff0c;16位&#xff0c;32位长度的数据类型&#xff0c;一个字节是8位&#xff0c;所以u8是1个字节&…

u32在c语言中的作用,c语言中u8,u16,u32(示例代码)

u8是unsigned char&#xff0c;u16是unsigned short&#xff0c;u32是unsigned long。 u8&#xff0c;u16&#xff0c;u32都是C语言数据类型&#xff0c;分别代表8位&#xff0c;16位&#xff0c;32位长度的数据类型&#xff0c;一个字节是8位&#xff0c;所以u8是1个字节&…

《C语言程序设计》实训报告

任务一顺序结构程序设计 1.编写已知半径r为15求圆面积的程序 文字&#xff1a; 1.定义一个变量r15&#xff1b; 2.让3.14与r*r相乘得的积为s&#xff1b; 3.输出s的值&#xff1b; 流程图&#xff1a; 代码&#xff1a; #include <stdio.h> int main() { double…

单片机c语言程序设计实训100例基于pic pdf,单片机C语言程序设计实训100例 基于AVR+Proteus仿真.pdf...

作 者 &#xff1a;彭伟编著 出版发行 : 北京&#xff1a;北京航空航天大学出版社 , 2010.05 ISBN号 &#xff1a;978-7-5124-0068-9 页 数 &#xff1a; 568 原书定价 : 65.00 主题词 : 单片微型计算机-C语言-程序设计 中图法分类号 : TP3 ( 工业技术->自动化技术、计算机技…

8051单片机的C语言程序设计

一、数据类型 &#xff08;一&#xff09;基本类型&#xff1a; 1. 位类型&#xff08;bit&#xff09;:1&#xff09;是C51的扩充数据类型&#xff0c;用于访问8051中可寻址的位单元。 2&#xff09;8051支持两种位类型&#xff1a;bit型和sbit类型&#xff0c;它们在内存中都…

c语言程序设计实训

任务一、顺序结构程序设计 1.编写已知半径r为15的圆面积 #include <stdio.h> int main() {double r, s, pi 3.14159;printf("请输入圆的半径为&#xff1a;");scanf_s("%lf", &r);s pi * r * r;printf("面积为&#xff1a;%f", s)…

51单片机基础实验例程

代码来源见代码注释。 Table of Contents 实验1&#xff1a;点亮第一个LED 实验2&#xff1a;LED闪烁 实验3&#xff1a;LED流水灯 实验4&#xff1a;蜂鸣器 实验5&#xff1a;静态数码管显示 实验6&#xff1a;动态数码管显示 实验7&#xff1a;独立按键 实验8&#x…

单片机c语言应用100例第3版课后答案,单片机C语言应用100例(第3版)

读者对象&#xff1a; 本书在编写时力求通俗、易懂&#xff0c;硬件原理以"有用、够用”为原则&#xff0c;内容讲解以"紧密结合实践”为特色。因此&#xff0c;本书特别适合单片机零起点的初学者使用&#xff0c;可作为高等院校控制类专业学生、电子爱好者及各类工程…

51单片机C语言程序100例分析(1)IO+C语言+头文件

51单片机C语言程序100例分析&#xff08;1&#xff09;IOC语言头文件 \\\插播一条&#xff1a;文章末尾有惊喜哟~/// P10xfe;//P111111110B&#xff0c;即P1.0输出低电平} 分析&#xff1a;通过这短短的几行代码就能够让51单片机的P1.0引脚输出低电平&#xff0c;首先#includ…

单片机c语言赚钱,单片机C语言程序设计实训100例(从初级入手).pdf

您所在位置&#xff1a;网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbsp嵌入式开发 单片机C语言程序设计实训100例(从初级入手).pdf59页 本文档一共被下载&#xff1a;次,您可全文免费在线阅读后下载本文档。 下载提示 1.本站不保证该用户上传的…

51单片机C语言编程100例pdf,51单片机C语言编程100例.doc

51单片机C语言编程100例.doc .目 录实例3用单片机控制第一个灯亮3实例4用单片机控制一个灯闪烁认识单片机的工作频率3实例5将 P1口状态分别送入P0、P2、P3口认识I/O口的引脚功能3实例6使用P3口流水点亮8位LED3实例7通过对P3口地址的操作流水点亮8位LED3实例8用不同数据类型控制…

单片机c语言程序设计实训报告,(整理)单片机C语言程序设计实训100例.doc

(整理)单片机C语言程序设计实训100例.doc .单片机C语言程序设计实训100例基于8051Proteus仿真案例第 01 篇 基础程序设计01闪烁的LED/* 名称闪烁的LED说明LED按设定的时间间隔闪烁*/includereg51.hdefine uchar unsigned chardefine uint unsigned intsbit LEDP10;延时void Del…

单片机C语言程序设计实训100例基于8051+Proteus仿真

初学单片机的时候&#xff0c;需要一些比较基础的例子来参考和提高自己 &#xff0c;这里整理一下常用的基本例子&#xff0c;给有需要的人也下载哦 内如下&#xff1a; 分2个文件夹基础部分和硬件应用部分 比如基础里面第一个 闪烁LED程序&#xff0c;C文件如下 #include &…

pchpch

在Xcode6之前&#xff0c;创建一个新工程xcode会在Supporting files文件夹下面自动创建一个“工程名-Prefix.pch”文件&#xff0c;也是一个头文件&#xff0c;pch头文件的内容能被项目中的其他所有源文件共享和访问。是一个预编译文件。 首先说一下pch的作用&#xff1a; 1.存…

Chip-seq简介

欢迎关注”生信修炼手册”! 染色质免疫共沉定技术&#xff0c;可以研究生物体内DNA与蛋白质的相互作用&#xff0c;首先在活细胞内固定DNA与蛋白结合的复合体&#xff0c;然后用蛋白特异性的抗体&#xff0c;通过抗原抗体特异性结合的免疫学手段捕获该复合体&#xff0c;然后洗…

CPC是什么意思和CPM、CPV有什么不同?

本文转载自&#xff1a;http://www.seolhj.com/baidujj/244.html 作者&#xff1a;木子seo 如果你有接触过百度竞价网络投放广告&#xff0c; 你是不是在工作中常常听到CPC、CPM、CPT等这些词汇&#xff0c; 却搞不懂他们到底是什么意思&#xff0c;之间的差异和内涵是什么&am…

SPI总线时钟的极性(CPOL)与相位(CPHA)

文章来源&#xff1a;转来转去的不知道是谁的了。。 SPI由于接口相对简单&#xff08;只需要4根线&#xff09;&#xff0c;用途算是比较广泛&#xff0c;主要应用在EEPROM&#xff0c;FLASH&#xff0c;实时时钟&#xff0c;AD转换器&#xff0c;还有数字信号处理器和数字信号…