这种函数在C中是否允许调用

时间:2017-07-07 21:29:07

标签: c function undefined-behavior

char* p = init();
p = foo(p);        /* this one */

函数foo原型:

char* foo(char* p);

是允许以这种方式致电foo,还是属于未定义行为类别?

2 个答案:

答案 0 :(得分:9)

是的,这是明确定义的 - 在函数参数的评估和函数调用之间存在一个序列点。

答案 1 :(得分:6)

  

是允许以这种方式调用foo,还是属于Undefined Behavior类别?

,订单有保证(参数&评价和函数调用之间存在一个序列点)。

您可能会对副作用的未经修改的修改或其他内容感到困惑。