函数调用R-1-7-14强制
禁止同一表达式中调用多个相关函数
相关函数是指在同一表达式中调用的函数,且它们之间存在数据依赖关系,将导致未定义行为。
多个相关函数调用
test.c
1int inc(int *x)2{3 *x += 1;4 return *x;5}67int square(int *x)8{9 *x *= *x;10 return *x;11}1213void 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}67int square(int *x)8{9 *x *= *x;10 return *x;11}1213void foo(void)14{15 int x = 3;16 x = inc(&x);17 int y = x + square(&x);18}