函数调用R-1-7-14强制

禁止同一表达式中调用多个相关函数

相关函数是指在同一表达式中调用的函数,且它们之间存在数据依赖关系,将导致未定义行为。

多个相关函数调用
test.c
1int inc(int *x)
2{
3 *x += 1;
4 return *x;
5}
6
7int square(int *x)
8{
9 *x *= *x;
10 return *x;
11}
12
13void foo(void)
14{
15 int x = 3;
16 int y = inc(&x) + square(&x);
禁止同一表达式中调用多个相关函数 [gjb8114-r-1-7-14]
17}
多个相关函数调用不在同一表达式中
test.c
1int inc(int *x)
2{
3 *x += 1;
4 return *x;
5}
6
7int square(int *x)
8{
9 *x *= *x;
10 return *x;
11}
12
13void foo(void)
14{
15 int x = 3;
16 x = inc(&x);
17 int y = x + square(&x);
18}