西西河

主题:今天随便说两句,关于日本 -- 绝对不是白领

共:💬141 🌺742 🌵6
全看分页树展 · 主题 跟帖
家园 看了下,好像有两个? -- 有补充

一个是未定义行为undefined,一个是未指定行为unspecified,

C标准我也不熟,但是像

printf("%d %d", i++, i++);肯定会有两种结果,c语言并没有指定函数取参数一定从左边取或者一定从右边取。当然这不会报警或者报错,只是得到的结果在不同的系统和编译器上可能不一样而已。

作者 对本帖的 补充(1)
家园 搜了下 -- 补充帖

按照c99标准,副作用发生的顺序也是未指定的。英文还没看

未規定の動作の一覧

未規定の動作にはどのようなものがあるのでしょうか。C言語の標準規格であるJIS X 3010:2003(ISO/IEC 9899:1999)の「附属書J 可搬性」を参考に未規定の動作を列挙してみましょう。

部分式が評価される順序、及び副作用が発生する順序。ただし関数呼出しの()、&&, ||, ?:, カンマ演算子は除く。(6.5)

http://www.c-lang.org/detail/unspecified_behavior.html

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河