+ -
当前位置:首页 → 问答吧 → 求讲解c的顺序问题

求讲解c的顺序问题

时间:2011-12-03

来源:互联网

我指的顺序问题是指的c标准没有规定的顺序,而留给编译器决定的顺序+ }0 T% W' R: x5 y/ z; b. C
例如:) z" n* R3 w: k: [8 T
y = 1*3+2*3
: }. F/ b- W$ x8 c- ~* h$ G或者
9 s$ o$ Q8 `- ~y = y++*y++
5 s) e# o( |: J7 X% x* V. R9 h函数的实参中用类似这种的
- X3 J; R3 r- H5 ]4 z. l例如:* u/ p6 D- Q) X6 g: E
abc(a++,a++). J, H. O5 A3 e# |. ?
有没有这种问题?: V9 r+ l: G9 m0 a, ]8 i) R

; @: w: u) m0 I* t[ 本帖最后由 jimages 于 2011-12-3 21:23 编辑 ]

作者: jimages   发布时间: 2011-12-03

楼主你好,诚如你所说,这个问题是存在的,而且依据编译器的实现或者优化而定。' \1 w# n/ {# M4 z
所以,在软件工程中建议不要使用这种令人迷惑的表达式。. B& U: v" f+ r+ |
这是一种工程实践,我们不能在语言级别上钻这个问题的牛角尖噢~5 H# A. _8 r2 Q- U( b7 I
引用:
原帖由 jimages 于 2011-12-3 21:21 发表
( \/ f2 S: i7 {: V7 i$ e$ d我指的顺序问题是指的c标准没有规定的顺序,而留给编译器决定的顺序; r/ z" X% k! l0 m8 ~7 a8 w. O
例如:
2 G) p0 A7 u0 l8 z$ \/ j. ty = 1*3+2*3
6 U8 M1 J4 H) @5 {或者7 g" `' j( Q* R" [
y = y++*y++4 ]6 z. O6 e: C+ E! r& Y5 B
函数的实参中用类似这种的
  {3 p7 @( c9 |; U' i例如:) ]: R$ o1 J  j8 F
abc(a++,a++)
- w) P6 _$ j& K( P& j有没有这种问题? ...

作者: Bill_Hoo   发布时间: 2011-12-03

http://bbs.51cto.com/thread-892115-1.html" q2 X, c/ E' v+ ^- s
楼主对这个问题感兴趣的话,可以看一下

作者: 月夜幻影   发布时间: 2011-12-03