アカウント名:
パスワード:
int a[]={10, 11, 12};int *p = a;
*p++ = p[1]; /* なんかトリッキー… */
printf("%d %d %d", a[0], a[1], a[2]);
これをコンパイルするとgcc4.7以前だと 11 11 12gcc4.8以降だと 12 11 12わんぱくですね。
バグというか解釈の違いというか。後置の定義が示す『式』というのがどの範囲までかという話ですよね。
あと*pに代入するならa[1]を代入しているのと同じでトリッキーというほどでは無いような。
せやな。代入せなんでも
int i=0;printf("%d %d %d", c, c++, c);
だけでもようわからんようなるで
わんぱくでもトリッキーでもないし"-Wall"をつけないでgccを使っている時点でプログラマ失格
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー
C言語の後置++ってわんぱく (スコア:1)
int a[]={10, 11, 12};
int *p = a;
*p++ = p[1]; /* なんかトリッキー… */
printf("%d %d %d", a[0], a[1], a[2]);
これをコンパイルすると
gcc4.7以前だと 11 11 12
gcc4.8以降だと 12 11 12
わんぱくですね。
Re: (スコア:0)
バグというか解釈の違いというか。
後置の定義が示す『式』というのがどの範囲までかという話ですよね。
あと*pに代入するならa[1]を代入しているのと同じでトリッキーというほどでは無いような。
Re: (スコア:0)
せやな。代入せなんでも
だけでもようわからんようなるで
Re: (スコア:0)
わんぱくでもトリッキーでもないし
"-Wall"をつけないでgccを使っている時点でプログラマ失格