什么是序列点(Sequence Point)?

计算机程序设计中的序列点是指在程序执行过程中,当一个变量的值被完全计算出来时出现的一个时刻,由于之前的操作中没有挂起的更改,也没有在将来的表达式中执行计算。序列点存在的地方很多,主要是在C语言标准中定义的,比如...
计算机程序设计中的序列点是指在程序执行过程中,当一个变量的值被完全计算出来时出现的一个时刻,由于之前的操作中没有挂起的更改,也没有在将来的表达式中执行计算。序列点存在的地方很多,主要是在C语言标准中定义的,比如在函数内部执行代码之前,在诸如“for”和“if”这样的语句中的控制表达式的末尾,以及在任何完整表达式的末尾,例如简单的一行C代码。定义序列点的一些原因是为了避免不明确的情况,导致未定义的行为,或可能混淆编译器并生成不可预测的代码。在许多情况下,程序员不会显式地担心序列点,尽管在创建编译器时,这个概念对于确保代码的正确执行是非常重要的。女人和计算机做倒立动作C语言中的一个序列点的例子在语句a=a B;中。在这个表达式中,分号是序列点;当表达式完成时,将计算A的值,并且在下一个表达式开始之前不会对其执行任何残差计算。等号不是序列点,因为编译器可以在整个表达式中以任何顺序修改的值。序列点的主要规则是,除了计算其值的更改外,在点之间访问变量的次数不得超过一次。如果违反此规则,则最好在将值赋给数组时表示。如果有一个变量a和一个名为I的数组,然后在C中语法上可以写下表达式I[a]=a。在这里,除了计算其当前值外,还可以多次访问变量;也就是说,它被用作数组I的索引这意味着编译器可能会在A用作索引之前或之后对其进行增量,从而产生程序中无法依赖的不可预知的行为。基本上,序列点可以被看作是一种确保编译器能够并且将一致地计算和执行语句的方法。这也允许编译器使用优化策略,因为定义的行为是可预测的。在C语言标准中,序列点有三个主要实例,即函数开始执行时,逻辑运算符和逗号的点,以及以分号结尾的完整表达式的结尾,就像大多数C语句那样
  • 发表于 2020-08-06 18:27
  • 阅读 ( 1152 )
  • 分类:电脑网络

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

推荐文章

联系我们:uytrv@hotmail.com 问答工具