4

标准说:

在库函数返回之前有一个序列点。C17dr § 7.1.4 3。

我知道在实际调用之前和 return 语句之后有一个序列点(由于分号,如果有其他原因请告诉我)但我无法理解上面的句子。谁能解释一下?

4

1 回答 1

4

这意味着您可以编写类似t = sqrt(t). 如果你不能,那真的很烦人。

如果 C 标准不保证函数在返回之前具有排序点,则上述行为将是未定义的。

请注意,C 标准库函数可能由编译器硬编码 - 所以这是一个重要的考虑因素。它还为标准库实现的用户增加了额外的保护,标准库实现可能将某些功能实现为宏(这是允许的,但必须遵守过多的规则)。

(请注意,该规则已沿用到 C++)。

于 2020-06-02T18:51:58.347 回答