int max(int a, int b){ int result; if(a > b){ result = a; } else{ result = b; } return result; }求他的控制流图
时间: 2024-01-21 21:03:26 浏览: 77
以下是该函数的控制流图:
```
┌───┐
│ 1 │ int max(int a, int b){
└───┘
│
▼
┌───┐
│ 2 │ int result;
└───┘
│
▼
┌───┐
│ 3 │ if(a > b){
└───┘
│
├───True───┐
▼ │
┌───┐ ┌───┐
│ 4 │ │ 5 │ result = a;
└───┘ └───┘
│ │
▼ │
┌───┐ │
│ 6 │ │
└───┘ │
│ │
▼ │
┌───┐ ┌───┐
│ 7 │ │ 8 │ result = b;
└───┘ └───┘
│ │
▼ │
┌───┐ │
│ 9 │ │
└───┘ │
│ │
▼ │
┌───┐ │
│10 │ │
└───┘ │
│ │
▼ │
┌───┐ ┌───┐
│11 │ │12 │ return result;
└───┘ └───┘
│ │
▼ │
┌───┐ │
│13 │ │
└───┘ │
│ │
▼ │
┌───┐ ┌───┐
│14 │ │15 │ }
└───┘ └───┘
```
其中,方框表示程序的基本块(basic block),即不包含入口和出口的连续语句序列。箭头表示控制流的方向,从上一个基本块指向下一个基本块,箭头上的标记表示转移条件(True 表示条件成立,False 表示条件不成立)。在该控制流图中,基本块2、5、8、12、15分别为函数的入口、分支语句的两个分支、赋值语句和函数的出口。