浅析C语言之uint8_t / uint16_t / uint32_t /uint64_t[通俗易懂]

浅析C语言之uint8_t / uint16_t / uint32_t /uint64_t[通俗易懂]一、C语言基本数据类型回顾在C语言中有6种基本数据类型:short、int、long、float、double、char1、数值类型1)整型:short、int、long2)浮点型:float、double2、字符类型:char二、typedef回顾typedef用来定义关键字或标识符的别名,例如:typedefdoublewages;typedefwage

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、C语言基本数据类型回顾

在C语言中有6种基本数据类型:short、int、long、float、double、char

1、数值类型

1)整型:short、int、long

2)浮点型:float、double

2、字符类型:char

二、typedef回顾

typedef用来定义关键字或标识符的别名,例如:

typedef double wages;
typedef wages salary;

三、uint8_t\uint_16_t\uint32_t\uint64_t

1、这些类型的来源:这些数据类型中都带有_t, _t 表示这些数据类型是通过typedef定义的,而不是新的数据类型。也就是说,它们其实是我们已知的类型的别名。

2、使用这些类型的原因:方便代码的维护。比如,在C中没有bool型,于是在一个软件中,一个程序员使用int,一个程序员使用short,会比较混乱。最好用一个typedef来定义一个统一的bool:

typedef char bool;

在涉及到跨平台时,不同的平台会有不同的字长,所以利用预编译和typedef可以方便的维护代码。

3、这些类型的定义:

在C99标准中定义了这些数据类型,具体定义在:/usr/include/stdint.h
 

  

ISO C99: 7.18 Integer types

#ifndef __int8_t_defined  
# define __int8_t_defined  
typedef signed char             int8_t;   
typedef short int               int16_t;  
typedef int                     int32_t;  
# if __WORDSIZE == 64  
typedef long int                int64_t;  
# else  
__extension__  
typedef long long int           int64_t;  
# endif  
#endif  
  
  
typedef unsigned char           uint8_t;  
typedef unsigned short int      uint16_t;  
#ifndef __uint32_t_defined  
typedef unsigned int            uint32_t;  
# define __uint32_t_defined  
#endif  
#if __WORDSIZE == 64  
typedef unsigned long int       uint64_t;  
#else  
__extension__  
typedef unsigned long long int  uint64_t;  
#endif  

4、格式化输出:

uint16_t %hu
uint32_t %u
uint64_t %llu

5
、uint8_t类型的输出:

注意uint8_t的定义为

typedef unsigned char           uint8_t;

uint8_t实际上是一个char。所以输出uint8_t类型的变量实际上输出其对应的字符,而不是数值。例:

uint8_t num = 67;
cout << num << endl;

输出结果:C

参考:

http://blog.sina.com.cn/s/blog_9dcc0fb90101gdvo.html

http://blog.csdn.net/mrlixirong/article/details/48416533

http://blog.csdn.net/kiddy19850221/article/details/6655066

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196258.html原文链接:https://javaforall.net

(0)
上一篇 2025年9月30日 下午2:43
下一篇 2025年9月30日 下午3:15


相关推荐

  • 基于RAG与LangGraph的多模态智能问答系统——设计、实现与开源

    基于RAG与LangGraph的多模态智能问答系统——设计、实现与开源

    2026年3月15日
    2
  • tail命令用法举例

    tail命令用法举例tail命令从指定点开始将文件写到标准输出.tail-ffilename可以方便的查阅正在改变的日志文件,会把filename里最新的内容显示在屏幕上1.命令格式:tail[必要参数][选择参数][文件]  2.命令功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。3.命令参数:-f 循环读取-q 不显示文件名-v 显示文件…

    2022年6月4日
    72
  • java varbinary_SQL 中存放 varbinary型数据

    java varbinary_SQL 中存放 varbinary型数据使用带有 BULK 选项的 OPENROWSET 以下 Transact SQL 增强功能支持 OPENROWSET BULK 函数 与 SELECT 一起使用的 FROM 子句可以调用 OPENROWSET BULK 而非表名 同时可以实现完整的 SELECT 功能 带有 BULK 选项的 OPENROWSET 在 FROM 子句中需要有一个相关名称 也称为范围变量或别名 可以指定列别

    2026年3月19日
    2
  • QVector基本用法

    QVector基本用法QVector 基本用法 QVector 是 Qt 对所有数组的封装 比如我们想要一个 int 类型数组 我们原先会写 intarray 10 我们在 Qt 里可以写 QVector int array 10 赋值的时候 我们依然可以照旧 array 5 4 想获取某一项的值也还可以 array 9 也就是说 原来的特性我们还可以用 那么 QVector 有什么好处呢 我们可以用 coun int

    2026年3月19日
    2
  • matlab保存图片到指定文件夹_matlab保存图片到指定路径

    matlab保存图片到指定文件夹_matlab保存图片到指定路径文章目录对画出的图像使用saveas函数保存:x=[2472452514];bar(x);saveas(gcf,’1.png’)gcf固定,保存为1.png.如果你想保存为别的格式,jpg什么的都可以,具体支持格式如下:

    2025年11月10日
    5
  • LAN offload 功能

    LAN offload 功能offload 功能简单来说就是减轻 CPU 对网络数据包的校验 拆分 打包等操作 将工作交给网卡做 从而减轻 CPU 的 load 目前最主要就是 3 中 offload1 GSO Generic segment offload2 GRO Generic Receiver Offload3 TSO TCP segment offload 在 linux 上打开或者关闭的命令 ethto

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号