罗老师
对于可控的事情要保持谨慎,对于不可控的事情要保持乐观,人只能做自己能力范围之内的事情,你要接受这个事实,并且以乐观的心去应对这一切
go.mod
文件 go 1.17
替换为 go 1.18
interface{}
替换为 any
> 因为 go 当中不存在全局变量这一概念,在低版本颗要用这个方法的话,就需要每个包内都实现一个。
BR > 1.结点是红色或黑色。
2.根结点是黑色。
3.每个叶子结点都是黑色的空结点(NIL结点)。
4 每个红色结点的两个子结点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色结点)
5.从任一结点到其每个叶子的所有路径都包含相同数目的黑色结点。
AVL BR B B+
关于查看 c 的等价汇编源码。
编写 main.c
文件
1 | #include<stdio.h> |
执行命令 gcc -S main.c
可以得到 main.s
这个便是汇编的文件,.s
为汇编源文件的后缀。其中文件内的注释为;
。
main.s 文件 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 .section __TEXT,__text,regular,pure_instructions
.build_version macos, 11, 3 sdk_version 11, 3
.globl _main ; -- Begin function main
.p2align 2
_main: ; @main
.cfi_startproc
; %bb.0:
sub sp, sp, #32 ; =32
stp x29, x30, [sp, #16] ; 16-byte Folded Spill
add x29, sp, #16 ; =16
.cfi_def_cfa w29, 16
.cfi_offset w30, -8
.cfi_offset w29, -16
stur wzr, [x29, #-4]
adrp x0, l_.str@PAGE
add x0, x0, l_.str@PAGEOFF
bl _printf
mov w8, #1
mov x0, x8
ldp x29, x30, [sp, #16] ; 16-byte Folded Reload
add sp, sp, #32 ; =32
ret
.cfi_endproc
; -- End function
.section __TEXT,__cstring,cstring_literals
l_.str: ; @.str
.asciz "hello"
.subsections_via_symbols
因为用 m1 的本子转换得到的。用电脑自带的 /usr/bin/as
。编译成功无法运行。可能平台相关。
大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。 小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。