徒手写一个RISC-V编译器 - 第000课 - 课程简介

2.1万
7
2022-07-20 17:48:56
正在缓冲...
424
314
1220
179
课程名称:徒手写一个RISC-V编译器 **课程简介:** 本课程基于 Rui 的 chibicc,将其由原来的X86架构改写为 RISC-V 架构,同时加入了大量的中文注释,并且配有316节对应于每一个 commit 的课程,帮助读者可以层层推进、逐步深入的学习编译器的构造。 RISC-V 是一个开源的精简指令集,相较于常见的 X86、ARM 架构,其简单易学,并且发展迅猛。现在已经出现了支持 RISC-V 的各类设备,未来还将出现RISC-V架构的笔记本电脑,可谓是前景一片光明。 chibicc(https://github.com/rui314/chibicc)是 Rui 大师开发的一个X86架构的迷你编译器。Rui 同时也是 8cc、9cc、mold、lld 等著名项目的主要开发者,chibicc 是他最新的编译器项目。chibicc 项目以 Commit 为阶段,借助于316个 commits 实现了一个能够编译 Git 等开源项目的C编译器。 **课程资源** 课程对应的代码仓库将会上传到:https://github.com/sunshaoce/rvcc 课程对应的视频将会在B站更新,请留意后续公众号推送。 **我适合学习么?** 学习 chibicc 不要求事先掌握编译原理知识(边做边学),但是需要一定的C编程能力。需要有一个 Linux 实验环境,同时安装了 RISC-V 模拟器等工具。 RISC-V 实验环境配置可以参考 https://www.bilibili.com/video/BV1D54y1m78G **我想加入学习小组!** 目前还没有开始,预期本周末开始。请留意后续的课程内容推送,视频和代码仓库中都将会提供进入学习群的方法。 微信群可以添加 fangzhang1024 加入(标注 【RVCC】) QQ群可以搜索 752911871
一位励志当上知识区扛把子的RISC-V国际基金会大使
12.0万播放
简介
第000课 - 课程简介
06:47
第001课 - 编译出能返回指定数值的程序
18:44
第002课 - 支持+ -运算符
05:56
第003课 - 加入一个终结符解析器来解析空格
15:21
第004课 - 改进报错信息
06:17
第005课 - 支持* / ()运算符
20:53
第006课:支持一元 + - 运算符
10:44
第007课:支持 == != <= >=运算符
12:35
第008课:将 main.c 分割为多个文件
08:18
徒手写一个RISC-V编译器 - 第009课:支持 ';' 分隔多个语句
13:32
徒手写一个RISC-V编译器 - 第010课:支持单字母本地变量
24:11
徒手写一个RISC-V编译器 - 第011课:支持多字母本地变量
27:22
徒手写一个RISC-V编译器 - 第012课:支持 return 语句
09:53
徒手写一个RISC-V编译器 - 第013课:支持 {...} 复合语句
12:53
徒手写一个RISC-V编译器 - 第014课 - 支持空语句
06:36
徒手写一个RISC-V编译器 - 第015课 - 支持if语句
14:06
徒手写一个RISC-V编译器-第016课-支持for语句
14:00
徒手写一个RISC-V编译器-第017课-支持while语句
08:44
徒手写一个RISC-V编译器-第018课-添加辅助信息
08:16
徒手写一个RISC-V编译器 - 第019课 - 为节点添加相应的终结符,以改进报错信息
05:47
徒手写一个RISC-V编译器 - 第020课 - 支持一元& *运算符
14:51
徒手写一个RISC-V编译器-第021课-支持指针的算术运算
18:35
徒手写一个RISC-V编译器-第022课-支持int关键字以定义变量
16:12
徒手写一个RISC-V编译器-第023课-支持零参函数调用
07:39
徒手写一个RISC-V编译器-第024课-支持最多6个参数的函数调用
11:13
徒手写一个RISC-V编译器-第025课-支持零参函数定义
11:26
徒手写一个RISC-V编译器-第026课-支持最多6个参数的函数定义
12:29
徒手写一个RISC-V编译器-第027课-支持一维数组
16:01
徒手写一个RISC-V编译器-第028课-支持多维数组
07:32
徒手写一个RISC-V编译器-第029课-支持 [] 运算符
03:08
徒手写一个RISC-V编译器-第030课-支持 sizeof
01:28
徒手写一个RISC-V编译器-第031课-融合Function和Var
06:38
徒手写一个RISC-V编译器-第032课-支持全局变量
10:49
徒手写一个RISC-V编译器-第033课-支持char类型
03:46
徒手写一个RISC-V编译器-第034课-支持字符串字面量
13:17
徒手写一个RISC-V编译器-第035课-增加format函数
02:48
徒手写一个RISC-V编译器-第036课-支持多个转义字符
07:08
徒手写一个RISC-V编译器-第037课-支持八进制转义字符
04:14
徒手写一个RISC-V编译器-第038课-支持十六进制转义字符
04:39
徒手写一个RISC-V编译器-第039课-添加语句表达式
05:40
徒手写一个RISC-V编译器-第040课-从文件中读取代码
12:51
徒手写一个RISC-V编译器-第041课-增加printLn函数
01:41
徒手写一个RISC-V编译器-第042课-支持-o和--help选项
08:54
徒手写一个RISC-V编译器-第043课-支持注释
02:10
徒手写一个RISC-V编译器-第044课-处理代码块域
10:28
徒手写一个RISC-V编译器-第045课-用C重写测试
08:23
徒手写一个RISC-V编译器-第046课-为Token预计算行号
02:12
徒手写一个RISC-V编译器-第047课-生成.file和.loc汇编指令
04:40
徒手写一个RISC-V编译器-第048课-支持 , 运算符
06:58
徒手写一个RISC-V编译器-第049课-支持struct
09:15
徒手写一个RISC-V编译器-第050课-对齐结构体成员变量
06:43
徒手写一个RISC-V编译器-第051课-对齐局部变量
05:31
徒手写一个RISC-V编译器-第052课-支持结构体标签
04:30
徒手写一个RISC-V编译器-第053课-支持->操作符
01:48
徒手写一个RISC-V编译器-第054课-支持union
05:18
徒手写一个RISC-V编译器-第055课-增加结构体赋值
05:27
徒手写一个RISC-V编译器-第056课-将int的大小由8改为4
03:00
徒手写一个RISC-V编译器-第057课-支持long类型
03:58
徒手写一个RISC-V编译器-第058课-支持short类型
03:28
徒手写一个RISC-V编译器-第059课-支持嵌套类型的声明
07:53
徒手写一个RISC-V编译器-第060课-支持函数声明
02:50
徒手写一个RISC-V编译器-第061课-支持void类型
02:08
徒手写一个RISC-V编译器-第062课-修正解析复杂类型声明
07:40
徒手写一个RISC-V编译器-第063课-支持long long
01:31
徒手写一个RISC-V编译器-第064课-支持typedef
12:28
徒手写一个RISC-V编译器-第065课-支持对类型进行sizeof
04:37
徒手写一个RISC-V编译器-第066课-增加对32位指令的支持
02:23
徒手写一个RISC-V编译器-第067课-支持类型转换
07:24
徒手写一个RISC-V编译器-第068课-实现常规算术转换
09:12
徒手写一个RISC-V编译器-第069课-对未定义或未声明的函数报错
01:23
徒手写一个RISC-V编译器-第070课-处理返回值的类型转换
02:30
徒手写一个RISC-V编译器-第071课-处理函数实参类型转换
03:29
徒手写一个RISC-V编译器-第072课-支持_Bool类型
03:36
徒手写一个RISC-V编译器-第073课-支持字符字面量
03:10
徒手写一个RISC-V编译器-第074课-支持enum
08:06
徒手写一个RISC-V编译器-第075课-支持文件域内函数
03:39
徒手写一个RISC-V编译器-第076课-支持循环域内定义局部变量
01:53
徒手写一个RISC-V编译器-第077课-支持+= -= *= :=
06:03
徒手写一个RISC-V编译器-第078课-支持前置++和--
01:53
徒手写一个RISC-V编译器-第079课-支持后置++和--
04:47
徒手写一个RISC-V编译器-第080课-支持16,8,2进制的数字字面量
04:10
徒手写一个RISC-V编译器-第081课-支持 ! 操作符
02:48
徒手写一个RISC-V编译器-第082课-支持 ~ 操作符
02:27
徒手写一个RISC-V编译器-第083课-支持 % 和 %=
02:50
徒手写一个RISC-V编译器-第084课-支持 & &= | |= ^ ^=
05:39
徒手写一个RISC-V编译器-[85] 支持&&和||
04:52
徒手写一个RISC-V编译器-[86] 增加不完整数组类型的概念
05:16
徒手写一个RISC-V编译器-[87] 在函数形参中退化数组为指针
02:07
徒手写一个RISC-V编译器-[88] 增加不完整结构体的概念
03:26
徒手写一个RISC-V编译器-[89] 支持goto和标签语句
06:20
徒手写一个RISC-V编译器-[90] 解决typedef和标签之间的冲突
01:09
徒手写一个RISC-V编译器-[91] 支持break语句
03:54
徒手写一个RISC-V编译器-[92] 支持continue语句
03:32
徒手写一个RISC-V编译器-[93] 支持switch和case
09:12
徒手写一个RISC-V编译器-[94] 支持<< <<= >> >>=
04:33
徒手写一个RISC-V编译器-[95] 支持三元条件运算符
06:03
徒手写一个RISC-V编译器-[96] 支持常量表达式
04:57
徒手写一个RISC-V编译器-[97] 支持局部变量初始化器
23:23
徒手写一个RISC-V编译器-[98] 为多余的数组元素赋0
05:57
徒手写一个RISC-V编译器-[99] 跳过多余的初始化元素
02:15
徒手写一个RISC-V编译器-[100] 支持字符串字面量的初始化
04:07
徒手写一个RISC-V编译器-[101] 支持存在初始化器时省略数组长度
07:19
徒手写一个RISC-V编译器-[102] 为局部变量处理结构体初始化
07:22
徒手写一个RISC-V编译器-[103] 初始化结构体时可使用其他结构体
02:46
徒手写一个RISC-V编译器-[104] 为局部变量处理联合体初始化
02:46
徒手写一个RISC-V编译器-[105] 为标量和字符串支持全局变量初始化器
03:53
徒手写一个RISC-V编译器-[106] 为结构体支持全局变量初始化器
01:34
徒手写一个RISC-V编译器-[107] 为全局变量处理联合体初始化
15:01
徒手写一个RISC-V编译器-[108] 允许省略初始化器内的括号
04:17
徒手写一个RISC-V编译器-[109] 允许标量初始化时有多余的大括号
01:02
徒手写一个RISC-V编译器-[110] 允许枚举类型或初始化器有无关的逗号
03:15
徒手写一个RISC-V编译器-[111] 将未初始化的全局变量存入bss段
01:10
徒手写一个RISC-V编译器-[112] 支持灵活数组成员
02:20
徒手写一个RISC-V编译器-[113] 支持初始化结构体灵活数组成员
04:46
徒手写一个RISC-V编译器-[114] 支持void作为形参
02:06
徒手写一个RISC-V编译器-[115] 对齐全局变量
01:36
徒手写一个RISC-V编译器-[116] 支持extern
05:39
徒手写一个RISC-V编译器-[117] 处理块中的extern声明
01:43
徒手写一个RISC-V编译器-[118] 支持_Alignof和_Alignas
06:30
徒手写一个RISC-V编译器-[119] 支持对变量使用_Alignof
01:17
徒手写一个RISC-V编译器-[120] 支持静态局部变量
01:28
徒手写一个RISC-V编译器-[121] 支持复合字面量
03:00
徒手写一个RISC-V编译器-[122] 支持空返回语句
01:21
徒手写一个RISC-V编译器-[123] 支持静态全局变量
01:50
徒手写一个RISC-V编译器-[124] 支持do while语句
03:31
徒手写一个RISC-V编译器-[125] 对齐栈帧到16字节的边界
01:29
徒手写一个RISC-V编译器-[126] 支持函数返回短整数
01:54
徒手写一个RISC-V编译器-[127] 允许调用可变参数函数
02:54
徒手写一个RISC-V编译器-[128] 增加__va_area__以支持可变参数函数
07:12
徒手写一个RISC-V编译器-[127] 允许调用可变参数函数
01:01
徒手写一个RISC-V编译器-[130] 支持signed关键字
02:17
徒手写一个RISC-V编译器-[131] 支持无符号整型
07:43
徒手写一个RISC-V编译器-[132] 支持U L LL后缀
05:38
徒手写一个RISC-V编译器-[133] 在一些表达式中用long或ulong替代int
02:12
徒手写一个RISC-V编译器-[134] 将指针作为无符号类型进行比较
00:46
徒手写一个RISC-V编译器-[135] 处理常量表达式的无符号类型
02:48
徒手写一个RISC-V编译器-[136] 忽略多个关键字
03:25
徒手写一个RISC-V编译器-[137] 忽略数组维度的static和const
00:50
徒手写一个RISC-V编译器-[138] 允许在函数声明中省略形参名
02:18
徒手写一个RISC-V编译器-[139] 支持浮点常量
05:17
徒手写一个RISC-V编译器-[140] 支持float和double用于局部变量或类型转换
03:35
徒手写一个RISC-V编译器-[141] 支持浮点数的 == != <和<=
03:19
徒手写一个RISC-V编译器-[142] 支持浮点数的 + - *和:
02:10
徒手写一个RISC-V编译器-[143] 支持浮点数的 if while do ! ?: || 和 &&
02:20
徒手写一个RISC-V编译器-[144] 允许使用浮点数调用函数
05:20
徒手写一个RISC-V编译器-[145] 允许使用浮点数定义函数
02:42
徒手写一个RISC-V编译器-[146] 为float实现默认实参提升
00:48
徒手写一个RISC-V编译器-[147] 支持可变参数函数使用浮点数实参
01:08
徒手写一个RISC-V编译器-[148] 支持浮点数常量表达式
03:24
徒手写一个RISC-V编译器-[149] 将long double作为double的别名
01:15
徒手写一个RISC-V编译器-[150] 支持stage2构建
06:55
徒手写一个RISC-V编译器-[151] 支持函数指针
09:36
徒手写一个RISC-V编译器-[152] 在函数参数中退化函数为指针
00:47
徒手写一个RISC-V编译器-[153] 支持为函数指针进行常规算术转换
00:52
徒手写一个RISC-V编译器-[154] 从编译器驱动分离出cc1
06:19
徒手写一个RISC-V编译器-[155] 使用-S时调用as
08:04
徒手写一个RISC-V编译器-[156] 接受多个输入文件
05:18
徒手写一个RISC-V编译器-[157] 无-c时调用ld
07:41
徒手写一个RISC-V编译器-[158] 增加预处理器原型
02:36
徒手写一个RISC-V编译器-[159] 支持空指示
04:44
徒手写一个RISC-V编译器-[160] 支持 #include "..."
11:47
徒手写一个RISC-V编译器-[161] 跳过 #include "..." 后的多余终结符
01:45
徒手写一个RISC-V编译器-[162] 支持-E选项
02:38
徒手写一个RISC-V编译器-[163] 支持 #if 和 #endif
06:55
徒手写一个RISC-V编译器-[164] 在值为假的#if语句中,跳过嵌套的 #if 语句
01:24
徒手写一个RISC-V编译器-[165] 支持 #else
03:36
徒手写一个RISC-V编译器-[166] 支持 #elif
01:46
徒手写一个RISC-V编译器-[167] 支持 #define 宏变量
02:37
徒手写一个RISC-V编译器-[168] 支持 #undef
01:32
徒手写一个RISC-V编译器-[169] 展开 #if 和 #elif 中的参数
01:35
徒手写一个RISC-V编译器-[170] 宏中只展开一次
06:14
徒手写一个RISC-V编译器-[171] 支持 #ifdef 和 #ifndef
03:15
徒手写一个RISC-V编译器-[172] 支持 #define 零参宏函数
06:32
徒手写一个RISC-V编译器-[173] 支持 #define 多参仿函数
10:23
徒手写一个RISC-V编译器-[174] 支持空的宏参数
01:55
徒手写一个RISC-V编译器-[175] 允许括号内的表达式作为宏参数
01:47
徒手写一个RISC-V编译器-[176] 宏函数中只展开一次
05:40
徒手写一个RISC-V编译器-[177] 支持宏字符化操作符#
06:55
徒手写一个RISC-V编译器-[178] 支持宏 ## 操作符
06:56
徒手写一个RISC-V编译器-[179] 使用内建的预处理器用于所有测试
02:13
徒手写一个RISC-V编译器-[180] 支持 defined() 宏操作符
02:54
徒手写一个RISC-V编译器-[181] 在常量表达式中替代遗留的标志符为0
01:50
徒手写一个RISC-V编译器-[182] 宏展开时保留新行和空格
01:46
徒手写一个RISC-V编译器-[183] 支持续行
05:12
徒手写一个RISC-V编译器-[184] 支持 #include <...>
04:36
徒手写一个RISC-V编译器-[185] 支持 -I<Dir> 选项
02:57
徒手写一个RISC-V编译器-[186] 支持默认包含路径
01:48
[189] 支持 __FILE__ 和 __LINE__
00:50
徒手写一个RISC-V编译器-[188] 支持一些预定义的宏
01:41
徒手写一个RISC-V编译器-[189] 支持 __FILE__ 和 __LINE__
06:18
徒手写一个RISC-V编译器-[190] 支持 __VA_ARGS__
05:40
徒手写一个RISC-V编译器-[191] 支持 __func__
01:24
徒手写一个RISC-V编译器-[192] [GNU] 支持 __FUNCTION__
01:02
徒手写一个RISC-V编译器-[193] 连接相邻的字符串
03:31
徒手写一个RISC-V编译器-[194] 识别宽字符字面量
01:48
徒手写一个RISC-V编译器-[195] 支持多个头文件
04:12
徒手写一个RISC-V编译器-[196] 支持 va_arg()
01:22
徒手写一个RISC-V编译器-[197] 实现rvcc自举
01:21
徒手写一个RISC-V编译器-[198] 支持栈传递实参
06:56
徒手写一个RISC-V编译器-[199] 支持栈传递形参
06:27
徒手写一个RISC-V编译器-[200] 支持结构体实参
30:33
徒手写一个RISC-V编译器-[201] 支持结构体形参
10:09
徒手写一个RISC-V编译器-[202] 支持调用返回结构体的函数
07:55
徒手写一个RISC-V编译器-[203] 支持定义返回结构体的函数
05:12
徒手写一个RISC-V编译器-[204] 支持可变参数函数接受任意数量的参数
06:49
徒手写一个RISC-V编译器-[205] 支持va_copy()
00:48
徒手写一个RISC-V编译器-[206] 支持解引用函数
00:54
徒手写一个RISC-V编译器-[207] 解析数值终结符为pp-number
02:58
徒手写一个RISC-V编译器-[208] 支持-D选项
01:52
徒手写一个RISC-V编译器-[209] 支持-U选项
01:29
徒手写一个RISC-V编译器-[210] 支持位域
12:03
徒手写一个RISC-V编译器-[211] 支持全局结构体位域初始化器
02:42
徒手写一个RISC-V编译器-[212] 支持op=风格的位域赋值
03:40
徒手写一个RISC-V编译器-[213] 处理零宽度位域成员
01:40
徒手写一个RISC-V编译器-[214] 禁止获取位域的地址
00:52
徒手写一个RISC-V编译器-[215] 写入文件前,先写入内存缓冲区
01:01
徒手写一个RISC-V编译器-[216] 忽略多个链接器选项
03:39
徒手写一个RISC-V编译器-[217] 开启-Wall选项
01:05
徒手写一个RISC-V编译器-[218] 数组超过16字节时,对齐值至少为16字节
00:59
徒手写一个RISC-V编译器-[219] main函数隐式返回0
01:35
徒手写一个RISC-V编译器-[220] 支持匿名结构体和联合体
02:56
徒手写一个RISC-V编译器-[221] 支持__DATE__和__TIME__宏
02:30
徒手写一个RISC-V编译器-[222] [GNU] 支持__COUNTER__宏
01:42
徒手写一个RISC-V编译器-[223] 规范化换行符
01:13
徒手写一个RISC-V编译器-[224] 支持u和U转义序列
07:40
徒手写一个RISC-V编译器-[225] 支持多字节字符作为多字符字面量
03:16
徒手写一个RISC-V编译器-[226] 支持UTF-16字符字面量
01:44
徒手写一个RISC-V编译器-[227] 支持UTF-32字符字面量
00:48
徒手写一个RISC-V编译器-[228] 支持UTF-8字符串字面量
01:40
徒手写一个RISC-V编译器-[229] 支持UTF-16字符串字面量
02:53
徒手写一个RISC-V编译器-[230] 支持UTF-32字符串字面量
01:28
徒手写一个RISC-V编译器-[231] 支持宽字符串字面量
00:55
徒手写一个RISC-V编译器-[232] 支持UTF-16字符串字面量初始化器
01:41
徒手写一个RISC-V编译器-[233] 支持UTF-32字符串字面量初始化器
01:03
徒手写一个RISC-V编译器-[234] 定义__STD_UTF_*__宏
00:46
徒手写一个RISC-V编译器-[235] 支持标志符使用多字节UTF-8字符
03:50
徒手写一个RISC-V编译器-[236] [GNU] 支持使用$作为标志符字符
00:58
徒手写一个RISC-V编译器-[237] 支持拼接常规字符串字面量和L u U字符串字面量
05:14
徒手写一个RISC-V编译器-[238] 跳过UTF-8 BOM标记
01:22
徒手写一个RISC-V编译器-[239] 支持数组指派初始化器
03:55
徒手写一个RISC-V编译器-[240] 支持指派初始化不完整数组类型
02:15
徒手写一个RISC-V编译器-[241] [GNU] 指派初始化器允许省略=
00:49
徒手写一个RISC-V编译器-[242] 支持结构体指派初始化器
03:11
徒手写一个RISC-V编译器-[243] 支持联合体指派初始化器
03:27
徒手写一个RISC-V编译器-[244] 为匿名结构体成员处理结构体指派器
01:54
徒手写一个RISC-V编译器-[245] 改进多字节字符的报错信息
03:27
徒手写一个RISC-V编译器-[246] 支持#line
04:32
徒手写一个RISC-V编译器-[247] [GNU] 支持行标记指示
00:54
徒手写一个RISC-V编译器-[248] [GNU] 支持__TIMESTAMP__宏
01:31
徒手写一个RISC-V编译器-[249] [GNU] 支持__BASE_FILE__宏
00:48
徒手写一个RISC-V编译器-[250] 支持__VA_OPT__
02:06
徒手写一个RISC-V编译器-[251] [GNU] 处理 ## __VA_ARGS__
01:33
徒手写一个RISC-V编译器-[252] 忽略#pragma
00:50
徒手写一个RISC-V编译器-[253] [GNU] 支持GCC风格的可变参数宏
03:00
徒手写一个RISC-V编译器-[254] 支持typeof
02:23
徒手写一个RISC-V编译器-[255] [GNU] 支持__builtin_types_compatible_p
04:20
徒手写一个RISC-V编译器-[256] 支持_Generic
03:47
徒手写一个RISC-V编译器-[257] [GNU] 支持sizeof函数类型
00:58
徒手写一个RISC-V编译器-[258] [GNU] 支持?:使用操作数
02:26
徒手写一个RISC-V编译器-[259] 支持asm语句
02:40
徒手写一个RISC-V编译器-[260] 将inline函数作为static函数
02:11
徒手写一个RISC-V编译器-[261] 如果没被引用不生成静态内联函数
04:00
徒手写一个RISC-V编译器-[262] 使用__attribute__((format(printf, ...)))查找程序错误
01:52
徒手写一个RISC-V编译器-[263] 支持-idirafter选项
02:08
徒手写一个RISC-V编译器-[264] 支持offsetof
01:29
徒手写一个RISC-V编译器-[265] 支持试探性定义
04:11
徒手写一个RISC-V编译器-[266] 支持-fcommon和-fno-common选项
01:30
徒手写一个RISC-V编译器-[267] 支持线程局部变量
05:07
徒手写一个RISC-V编译器-[268] 支持-include选项
04:52
徒手写一个RISC-V编译器-[269] 支持-x选项
03:41
徒手写一个RISC-V编译器-[270] 使-E包含-xc
01:07
徒手写一个RISC-V编译器-[271] 支持alloca函数
10:48
徒手写一个RISC-V编译器-[272] 支持对VLA进行sizeof
10:20
徒手写一个RISC-V编译器-[273] 为VLA支持指针算术运算
04:02
徒手写一个RISC-V编译器-[274] 支持sizeof(VLA类型)
01:07
徒手写一个RISC-V编译器-[275] 移除__STDC_NO_VLA__
00:38
徒手写一个RISC-V编译器-[276] 支持-l选项
01:12
徒手写一个RISC-V编译器-[277] 支持-s选项
01:39
徒手写一个RISC-V编译器-[278] 为符号生成大小和类型
01:57
徒手写一个RISC-V编译器-[279] 识别.a和.so文件
01:18
徒手写一个RISC-V编译器-[280] 支持long double
19:42
徒手写一个RISC-V编译器-[281] 支持范围case
04:33
徒手写一个RISC-V编译器-[282] 支持数组范围指派器
03:12
徒手写一个RISC-V编译器-[283] [GNU] 支持标签作为值
05:29
徒手写一个RISC-V编译器-[284] [GNU] 将标签值作为编译时常量
02:13
徒手写一个RISC-V编译器-[285] 支持字符串哈希表
19:10
徒手写一个RISC-V编译器-[286] 使用哈希表用于宏名称查找
02:11
徒手写一个RISC-V编译器-[287] 使用哈希表用于代码块域查找
02:23
徒手写一个RISC-V编译器-[288] 使用哈希表用于关键字查找
01:59
徒手写一个RISC-V编译器-[289] 支持-M选项
02:52
徒手写一个RISC-V编译器-[290] 支持-MF选项
01:38
徒手写一个RISC-V编译器-[291] 支持-MP选项
01:26
徒手写一个RISC-V编译器-[292] 支持-MT选项
02:14
徒手写一个RISC-V编译器-[293] 支持-MD选项
01:34
徒手写一个RISC-V编译器-[294] 支持-MQ选项
02:39
徒手写一个RISC-V编译器-[295] 支持-MMD选项
02:29
徒手写一个RISC-V编译器-[296] 支持-fpic和-fPIC选项
07:21
徒手写一个RISC-V编译器-[297] 缓存文件搜索结果
01:18
徒手写一个RISC-V编译器-[298] 支持引入防御优化
04:13
徒手写一个RISC-V编译器-[299] [GNU] 支持#pragma once
01:46
徒手写一个RISC-V编译器-[300] [GNU] 支持#include_next
03:05
徒手写一个RISC-V编译器-[301] 支持-static选项
01:00
徒手写一个RISC-V编译器-[302] 支持-shared选项
01:06
徒手写一个RISC-V编译器-[303] 支持-L选项
00:56
徒手写一个RISC-V编译器-[304] 支持-Wl,选项
02:02
徒手写一个RISC-V编译器-[305] 支持-Xlinker选项
00:48
徒手写一个RISC-V编译器-[306] 增加脚本测试第三方程序
05:23
徒手写一个RISC-V编译器-[307] 支持原子比较交换操作
07:40
徒手写一个RISC-V编译器-[308] 支持原子交换操作
02:19
徒手写一个RISC-V编译器-[309] 支持_Atomic及一些原子操作
04:32
徒手写一个RISC-V编译器-[310] 完善stdatomic.h
01:41
徒手写一个RISC-V编译器-[311] 增加cpython测试脚本
00:54
徒手写一个RISC-V编译器-[312] 识别重复定义的函数
02:17
徒手写一个RISC-V编译器-[313] 支持__attribute__((packed))
02:09
徒手写一个RISC-V编译器-[314] 支持__attribute__((aligned(N)))
01:33
徒手写一个RISC-V编译器-[315] 更新README
00:42
徒手写一个RISC-V编译器-[316] 使结构体成员可以通过=或_:访问
01:00
客服
顶部
赛事库 课堂 2021拜年纪