我可以在C中的函数返回中使用后增量吗?

我可以在C中的函数返回中使用后增量吗?,c,function,return,post-increment,C,Function,Return,Post Increment,我可以像这样在C中的函数返回中使用post increment吗 int meta_solve() { //some codes return metaData[head++]; //head is global variable } 我问这个问题是因为它在windows和mac上显示了不同的结果。谢谢你的关注。祝你今天愉快 是的,那会有用的 直到表达式元数据[head++]完全求值,以便在函数返回之前(全局)变量head递增,返回才会发生。这取决于调用函数的方式。如果两次调用

我可以像这样在C中的函数返回中使用post increment吗

int meta_solve() {    
  //some codes
  return metaData[head++]; //head is global variable
}
我问这个问题是因为它在windows和mac上显示了不同的结果。谢谢你的关注。祝你今天愉快

是的,那会有用的


直到表达式
元数据[head++]
完全求值,以便在函数返回之前(全局)变量
head
递增,返回才会发生。

这取决于调用函数的方式。如果两次调用函数时,它们之间没有序列点,则不会指定调用它们的顺序,因此增量的顺序将发生变化。发布一篇文章,说明您看到的问题。什么是
head
?什么是
metaData[]
?@Barmar虽然这是真的,但它不会改变return语句中的post increment是好的。不是windows或mac之类的东西,而是一个编译器与另一个编译器之间的差异,实际显示您认为不同的每个编译器之间的差异,C标准中的一个缺陷是,规范性文本中没有规定在
返回
语句后有一个序列点。理论上,增量允许在函数返回后发生。如果调用位于较大的表达式中,则增量可能不会相对于表达式中的其他内容排序。