0%

TL; DR

Today, I will start to learn oral English and record what I have learned from the lessons. And the first lesson is Brithplaces and Residences. In this article, I will record the knowledge I am unfamiliar with and the words I pronounce or spell incorrectly.

Read more »

TL; DR

本文主要研究在 Bison 中 %prec 的含义。

结论:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
%left '+' 'a'
%left '*'
%left ptm

...


exp : exp '+' exp {$$ = $1 + $3;}
| exp 'a' exp {$$ = $1 - $3;}
| exp '*' exp {$$ = $1 * $3;}
| 'a' exp %prec ptm {$$ = $2 * $2;}
| term {$$ = $1;}
;


表示 exp : 'a' exp %prec ptm 这条语法的优先级和关联性与 ptm 这个符号一致。

Read more »

TL; DR

查资料得知 extern 关键字是变量在其他文件的声明。突然感觉很奇怪,那如果文件 A,在头文件中定义了某一个变量,文件 B 不使用 extern 不也是可以使用的吗?为什么还要用 extern 这个关键字呢?

结论:

  1. 使用 extern 可以使用在其他文件定义(.c)的变量,即使这个文件没有在头文件中定义。
  2. 假设只有两个文件 a.c b.c,在 b.c 中 include a.h,a 文件和 b 文件会共用 include 中的变量。
  3. 如果要使用其他文件定义的变量,尽量使用 extern,这样也很明了。
Read more »

TL; DR

最近学习 TinySQL,TinySQL 的 Project2 与和 Yacc 和 Lex 相关,所以总结了一下相关的知识。这篇博客记录了如何单独使用 Lex 以及如何使用 Lex 和 Yacc 构造一个简单的计算器。

Read more »

Hello World, I Love CS.