primary function call

This commit is contained in:
Yaossg 2024-11-20 23:44:42 +08:00
parent 653d42ccf3
commit b8108acb2e
2 changed files with 48 additions and 37 deletions

View file

@ -78,7 +78,8 @@ $ sh boot.sh
- 函数和数组不是类型系统的一部分。
- 可以认为数组的类型就是其元素对应的指针类型。
- 函数保存了其返回值的类型,建议仅用于直接调用,其它操作可视为 UB。
- 函数的参数类型和个数不会检查,返回值会参与类型检查。
- 函数名只能被用于调用,函数调用被视为初等表达式。
- 数组只支持一维数组,且数组的元素不能是指针类型。
- 全局变量不能是指针类型。
- 整数和字符字面量的类型是 `int`,字符串字面量的类型是 `char*`
@ -95,7 +96,8 @@ $ sh boot.sh
| 运算符 | 含义 | 结合性 |
| --------------------------------- | ----------------------------------------------- | -------- |
| `++` `--` `()` `[]` | 后缀自增自减 函数调用 数组下标 | 从左到右 |
| `()` | 初等表达式(字面量、标识符、函数调用、括号) | |
| `++` `--` `[]` | 后缀自增自减 数组下标 | 从左到右 |
| `++` `--` `+` `-` `*` `&` `!` `~` | 前缀自增自减 正负号 取地址 解引用 逻辑非 按位非 | 从右到左 |
| `*` `/` `%` | 乘除余 | 从左到右 |
| `+` `-` | 加减 | 从左到右 |
@ -106,7 +108,7 @@ $ sh boot.sh
| `^` | 按位异或 | 从左到右 |
| <code>&#124;</code> | 按位或 | 从左到右 |
| `&&` | 逻辑与 | 从左到右 |
| <code>&#124;&#124;</code> | 逻辑或 | 从左到右 |
| <code>&#124;&#124;</code> | 逻辑或 | 从左到右 |
| `=` | 赋值 | 从右到左 |
- 同级表达式的求值顺序与结合性一致。
@ -116,7 +118,6 @@ $ sh boot.sh
- 逻辑与和逻辑或支持短路求值。
- 表达式没有左值和右值之分。可以认为右值总是存在一个临时的变量中。
- 赋值不检查类型。强制类型转换可以用赋值给特定类型的变量实现。
- 函数的参数类型和个数不会检查,返回值会参与类型检查。
### 其它支持与不支持