- 博客(381)
- 资源 (16)
- 问答 (1)
- 收藏
- 关注
原创 万恶的goto关键字
提到goto, 大家一定能想到迪杰斯特拉发表的著名论文goto有害论(Go To Statement Considered Harmful)。正是它推动了结构化程序设计语言的发展。公正地说,goto并非那么可怕,机器码/汇编码本身支持跳转,就是goto的底层形态。计算机程序中条件选择、循环等语句最终依然依靠跳转指令完成,只是高级编程语言不建议用goto, 会造成程序员的困扰。但,机器从来都没困扰过,CPU根据jmp或j*指令的地址改写RIP地址并执行,丝滑无比,从未抱怨过。
2024-09-23 19:26:01 239
原创 不同语言的switch/case语句
多路分支选择switch/case是if/else if/else的好看版本,switch中default语句对应if的else语句。每个case对应汇编代码的label, 编译器插入多条jmp语句实现不同分支跳转.
2024-09-22 09:27:58 609
原创 语言的复合语句
在函数中可以声明和定义变量,包含多条执行语句,概念上和复合语句类似。事实上,二者在复合语句的概念上几乎没有区别。类定义,用{}包起来,也是复合语句的一种。
2024-09-21 08:21:36 456
原创 语言的优先级
编译器和解释器会对源代码运算数和不同运算符的组合感到困惑,用优先级解决先算什么后算什么。相同优先级的组合也会让编译器困扰应该先做什么,结合性应运而生。
2024-09-18 19:11:24 769
原创 赋值运算符
赋值是编程语言基本操作,即便如此,赋值运算符也并不唯一。大部分编程语言”=”是赋值,”==”是相等。一个常见的疑问是,赋值运算符”=”和数学的相等是一个符号,这会产生误解吗?
2024-09-17 10:17:22 651
原创 语句结束符
这个话题听起来很简单,但不同编程语言的不同语法产生了五花八门的语句结束符。大部分编程语言以换行或者分号作为结束符,当然要排除有续行符的情况。
2024-09-17 10:15:43 697
原创 语言的新类型
编程语言默认提供的类型显然不能满足人类的需要,定义新类型是高级编程语言必须解决的事情。大部分编程语言提供形如结构体或者类,枚举也是一种简单的新类型。微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。助您在编程路上越走越好!
2024-09-16 14:20:18 445
原创 语言的布尔类型
布尔是一位英国数学家,他很好地融合了逻辑运算和数学的关系。为了纪念他,用”布尔”表示逻辑的”真”和”假”。布尔类型最早是Algol 60提出。
2024-09-15 09:03:12 427
原创 32位和64位
一般而言,CPU位数是指CPU最轻松操作的寄存器大小。微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。欢迎关注。助您在编程路上越走越好!
2024-09-15 09:01:26 363
原创 变量取值范围
通常意义上,任何一种类型都有自己的取值范围,但跟着变量类型本身的范围太大,有时,不希望取值有这么大,就可以定义枚举,但枚举也不是万能,能准确规定范围是更安全的选择。助您在编程路上越走越好!
2024-09-14 19:15:04 537
原创 语言中的复数
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。科学计算中复数比较常见,编程语言对复数的支持方式不尽相同。助您在编程路上越走越好!
2024-09-13 19:14:27 401
原创 语言中的溢出
任何数据类型都有最大和最小值,会溢出是由物理特性决定。编译型静态类型语言一般明确定义类型大小,这种定义出来的类型都存在溢出的可能。有的动态语言为减少程序员溢出的困扰,尽可能为数据扩展成更大的数值,Python就是这样的好人。
2024-09-13 19:12:04 727
原创 语言中的浮点数
浮点数相比定点数或者整数,为了处理小数点引入了指数,导致小数点的位置根据不同浮点数而不同,故名为Floating Point Number. 一般而言,IEEE754标准被大部分编程语言的浮点数使用,它节省了浮点数的保存空间。如不然,浮点数可能按每一位ASCII码保存,包括整数部分、小数点和小数部分,占用空间不可控制。
2024-09-12 19:12:43 1214
原创 安全API
提到安全,大部分在学习和调试编程语言时并不太在意,真正爆发问题是在用户端。真正的安全漏洞是很可怕的,获取系统最高权限,获得敏感资讯,伤心不已,泪流满面。
2024-09-11 21:04:54 633
原创 字符串长度
字符串长度是一个很有意思的话题,基本整型或者浮点数长度一目了然,字符串因为独特的可变长度,研究它也是一个好话题。微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。助您在编程路上越走越好!
2024-09-11 21:03:29 241
原创 语言的模块
提到模块,它是一个概念很广的名词,在编程语言世界中,用它可代表一个独立的编程语言源代码或者其他形式的存在,可用于其他模块或者主程序使用。微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。助您在编程路上越走越好!
2024-09-10 19:26:28 561
原创 语言的智能指针
C语言完全靠人工,C#/Java/Python等更高级语言有GC,只有C++还在研究复杂的指针技术。这些指针技术听起来似乎已经没太大意义,但对于C++语言而言,意义深远,因为它真的再让程序员控制内存和对象释放。助您在编程路上越走越好!
2024-09-09 19:19:56 498
原创 成员函数重写
如果想常收到推文,请经常留言、点“在看”或将微信公众号设为星标。微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。助您在编程路上越走越好!
2024-09-09 19:18:26 268
原创 socket 断线重连和心跳机制如何实现?
它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的 IP 地址,本地进程的通信端口,远程主机的 IP 地址,远程进程的通信端口。当服务端套接字监听到或者接收到客户端套接字的连接请求时,就会去响应客户端套接字的请求,建立一个新的线程,把服务端套接字的描述发 给客户端,一旦客户端确认了此描述,双方就正式建立连接。为此,客户端的套接字必须首先描述它要连接的服务端的套接字,指出服务端套接字的地址和端口号,然后就可以向服务端套接字提出连接请求。
2024-09-08 10:21:15 1220
原创 语言中的内联
爸爸为了培养孩子的独立能力,会把任务交给孩子并观察孩子做的结果。但有的时候,妈妈看到孩子因为完不成而伤心难过时,会毫不犹豫二话不说帮孩子的事情做掉。这也是内联。
2024-09-07 11:35:05 327
原创 如何保证 UDP 的可靠性传输?
这类似于TCP的确认应答机制,但是在应用层内实现的。UDP传输层是一种无连接的、不可靠的传输协议,无法保证数据的可靠传输,只能通过应用层来实现可靠性传输。当接收方来不及接收发送方发来的数据时,则会提示发送方降低发送的速度,防止包丢失。
2024-09-07 11:33:31 614
原创 语言的构造函数
OOP编程语言依赖构造函数,不同语言构造函数语法要求不太相同,但大同小异。构造函数和初始化函数很类似,看透了,就是类似C语言初始化一个结构体变量。
2024-09-06 19:38:30 543
原创 左值和右值
计算机硬件结构存在取数据和存数据,取数据是从一个地址读,存数据是向一个地址写。一般而言,有地址能被写的就在赋值表达式的左侧,被称为左值(l-value), 其它的被称为右值(r-value). 大部分编程语言都有左值和右值的概念。C++的左值和右值概念是最复杂的。
2024-09-06 19:36:28 327
原创 反射: 获取变量类型
更高级的编程语言,提供反射、解释机制,获取对象类型非常方便,因为运行时保存有对象的全部信息,也包括类型,而对于编译型语言而言,变量类型要靠编译期或构造/依赖类型某个存储类型的结构。
2024-09-05 19:12:03 311
原创 语言的自动类型
编程语言为了方便,会默认建立一套变量默认类型机制。更高级的编程语言或脚本语言为了简化,可能引入自动类型。微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。助您在编程路上越走越好!
2024-09-05 19:11:04 467
原创 语言中的类型转换
编程语言中必然有很多情况需要转换类型。比如引入const的概念就为了提高安全性,编译器提前检查,避免一些意外修改。当然,有时,我们希望手动转换一个变量的类型,让其变成常量,可以利用编译器提供的cast方法。
2024-09-04 19:22:59 614
原创 编译器和语言标准
编译器随着编程语言新标准而不断更新,历史的长河可能会淹没很多故事,但必要的时候,回忆起编译器版本和编程语言标准,不失一件有趣的事情。微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。助您在编程路上越走越好!
2024-09-04 19:21:15 589
原创 编译器/解释器用什么语言编写?
一般而言,语言A诞生之初,一定是已存在的另外一种语言写它的编译器,等编译器完成后,就可以用语言A本身写它的编译器。微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。助您在编程路上越走越好!
2024-09-03 19:18:37 1304
JESD209-5-LPDDR5-注释解读v1
2024-07-04
JESD209-4B-LPDDR4 注释解读 v3
2024-07-04
DRAM技术精解(第三版 中文)
2024-07-04
JESD209-4B-LPDDR4 中文解读 v2.3
2022-10-23
DRAM技术精解(第三版 中文) DDRX LPDDRX
2022-10-23
JESD209-5_4_3 LPDDR5 LPDDR4 LPDDR3精解
2022-03-12
JESD209-4_3 LPDDR4 LPDDR3精解.pdf
2021-12-12
JESD209-3 LPDDR3精解.pdf
2021-11-26
JESD79-5_4_3 DDR5 DDR4 DDR3精解.pdf
2021-11-21
JESD79-4B DDR4 JESD79-3F DDR3 精解.pdf
2021-11-16
JESD79-3 DDR3 Technology.pdf
2021-11-13
JESD79-3 DDR3精解.pdf
2021-10-25
JESD79-4 DDR4解读.pdf
2021-10-13
DRAM技术精解(中文) DDR3-DDR4-DDR5-LPDDR3-LPDDR4-LPDDR5.pdf
2021-10-02
Android十年终极开发经验_助您不走弯路_快速晋级Android架构师
2021-08-08
JESD209-4C LPDDR4解读.pdf
2021-08-01
JESD79-3F_DDR3 中文注释解读 v3.pdf
2021-07-18
JESD79-E_DDR 中文注释解读 v2.2.pdf
2021-07-17
JESD209-4B_LPDDR4 中文注释解读.pdf
2021-06-18
DRAM Technology DDR3_DDR4_DDR5_LPDDR3_LPDDR4_LPDDR5技术精解.pdf
2021-01-31
DDR4为何没有类似LP3的CA training或者LP4的CBT?
2020-12-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人