1、相关代码理解

在看代码时,发现有用到  SOCKET

我去找它们的定义,发现有如下定义:

typedef   UINT_PTR  SOCKET

又去看UINT_PTR,LONG_PTR, LONG_PTR的定义,发现有如下定义:

1     typedef _W64 int INT_PTR, *PINT_PTR;
2 typedef _W64 unsigned int UINT_PTR, *PUINT_PTR;
3
4 typedef _W64 long LONG_PTR, *PLONG_PTR;
5 typedef _W64 unsigned long ULONG_PTR, *PULONG_PTR;

以typedef _W64 int INT_PTR, *PINT_PTR;为例,这里

_W64是编译选项,在64位编译器下, ,而且打开了/Wp64编译选项时,编译器会对使用了__w64的类型进行32位到64位移植性的判断
typedef int INT_PTR => 这里就是为int类型取了一个别名 INT_PTR, 所以这里 INT_PTR就是代表int =》使用 INT_PTR b; b =1;
typedef int *PINT_PTR => 就是为int *,也就是int类型的指针,取了一个别名 PINT_PTR, 所以,这里PINT_PTR就是代表int类型的指针 => 使用 int x = 8; PINT_PTR y = &x;

2、知识扩充

(1)intptr_t 和uintptr_t 类型用来存放指针地址。它们提供了一种可移植且安全的方法声明指针,而且和系统中使用的指针长度相同,对于把指针转化成整数形式来说很有用。

(2)intptr_t是为了跨平台,其长度总是所在平台的位数,所以用来存放地址。

(3)64位机器上指针占8字节,long类型也占8字节,32位机器上指针占用4字节,int类型也占用4字节,所以intptr_t、uintptr_t才这样取别名就是为了能让整数类型与指针互相转换,且注意到为了兼容16位机器,在非64位机器的intptr_t、uintptr_t用int来取别名,而不是long。

3、typedef用法

  • C语言中可以对类型赋新名字

  • 语法:
1 typedef Type NewTypeName
2
3 - typedef 并没有创建新类型,只是创建了类型别名
  • 定一个0~255数字的数据类型

 1 #include <stdio.h>
2 #include<stdlib.h>
3
4 typedef unsigned char byte;
5
6 int main()
7 {
8 byte b = 128;
9 printf("sizeof(byte) = %d\n", sizeof(byte));
10 printf("b = %d\n",b);
11
12 return 0;
13 }
  • typedef应用

  • typedef 可在函数中定义“局部类型名”
  • typedef 常用于简化类型名(如 unsigned long long)
  • typedef 定义类型名,能够以统一的方式创建变量(Type var)

Unit_ptr数据类型的理解的更多相关文章

  1. JS数据类型的理解(猜测)

    Js 数据类型 对于这个主题,首先来看几个问题,如果你对这几个问题很清楚的话,那就请直接跳过吧,不用接着往下看了,如果不清楚,建议你还是看看. 1)如果判断函数?function 和object的联系 ...

  2. C语言数据类型的理解

    数据类型的定义: 作为一种语言,必然有所谓的语言组成要素,就像日常生活中人们之间的交流一样,首先会有字,字再成词组,再来就是句子,后来呢就是段落等等.当然不同的字,词,句这些在一起,就会有不同的表达效 ...

  3. 我对js数据类型的理解和深浅(copy)的应用场景

    本人毕业一所专科院校,所学专业是计算机应用技术,在大学时对前端有了一定的了解之后,觉得自己对前端的兴趣十分强烈,开始自学前端,一路上也是坎坎坷坷,也有想要放弃的时候,还好坚持了下来,并且从事前端开发已 ...

  4. 关于int8_t,uint8_t.....等数据类型的理解

    实习中,今天在看公司源码的时候,发现前辈给的代码都是这样的 typedef int8_t int8; typedef uint8_t uint8; typedef int16_t int16; typ ...

  5. javascript: 数据类型深入理解

    1.基本类型(值类型或者原始类型): Number.Boolean.String.NULL.Undefined以及ES6的Symbol2.引用类型:Object.Array.Function.Date ...

  6. Python3 中bytes数据类型深入理解(ASCII码对照表)

    bytes的来源 bytes 是 Python 3.x 新增的类型,在 Python 2.x 中是不存在的. bytes 的意思是"字节",以字节为单位存储数据.而一个字节二进制为 ...

  7. 课程1——数据类型和变量

    声明:本系列随笔主要用于记录c语言的常备知识点,不能保证所有知识正确性,欢迎大家阅读.学习.批评.指正!!你们的鼓励是我前进的动力.严禁用于私人目的.转载请注明出处:http://www.cnblog ...

  8. 如何理解signal函数声明

    Signal函数用起来其实很简单,但是回头看看他的声明,相信会有很多人表示费解.自己也在这个问题中纠结了好几年了,今天终于弄明白,很是兴奋,一起分享一下. 先看函数原型:void (*signal(i ...

  9. Pyhton编程(五)之基本数据类型-列表、元组、字典

    一:列表(list) 列表是由一系列按特定顺序排列的元素组成,可以创建包含字母表中的所有字母.数字.或中文的列表,也可以将任何东西加入列表中,其中的元素之间可以没有任何关系. 在Python中,用方括 ...

  10. js基础--javaScript数据类型你都弄明白了吗?绝对干货

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 数据类型的分类 JavaScript的数据类型分为两大类,基本数据类型和复杂数据类型. 基本数据类型:Null.Undefine ...

随机推荐

  1. .NET5从零基础到精通:全面掌握.NET5开发技能

    C#版本新语法-官网: C#7:https://docs.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-7 C#8:https://docs.m ...

  2. 【RocketMQ】消息的存储总结

    当Broker收到生产者的消息发送请求时,会对请求进行处理,从请求中解析发送的消息数据,接下来以单个消息的接收为例,看一下消息的接收过程. 数据校验 封装消息 首先Broker会创建一个Message ...

  3. API接口的技术的概念

    当今互联网技术的发展越来越快,越来越多的网站和应用程序需要获取外部数据来提供更好的服务和用户体验,这就需要使用API接口.本文将会对API接口的概念.类型以及如何调用API接口进行简要介绍. 一.什么 ...

  4. DesignPattern-part1

    title: "modern C++ DesignPattern-Part1" date: 2018-04-03T16:06:33+08:00 lastmod: 2018-04-0 ...

  5. Electron创建项目并打包生成exe

    安装nodejs 访问这个网站去下载 http://nodejs.cn/download/ 创建项目 创建项目 git clone https://github.com/electron/electr ...

  6. Jenkins持续集成入门到精通(进阶篇)

    视频参考:https://www.bilibili.com/video/BV1Vp4y1b7ZN?p=51 1. Jenkins+Docker+SpringCloud持续集成流程说明 大致流程说明: ...

  7. 【Qt6】列表模型——便捷类型

    前一篇水文中,老周演示了 QAbstractItemModel 抽象类的继承方法.其实,在 Qt 的库里面,QAbstractItemModel 类也派生了两个基类,能让开发者继承起来[稍稍]轻松一些 ...

  8. redis基本数据类型 List

    127.0.0.1:6379> LPUSH test a (integer) 1 127.0.0.1:6379> LPUSH test b (integer) 2 127.0.0.1:63 ...

  9. macbook-键盘连击问题002

    https://support.apple.com/zh-cn/HT205662 如何清洁 MacBook 或 MacBook Pro 的键盘 如果您的 MacBook(2015 年及更新机型)或 M ...

  10. MySQL的sql_mode设置导致报错1292

    在MySQL8.0的一个PXC集群中,默认的sql_mode设置如下: select @@sql_mode; +-------------------------------------------- ...