2009年4月18日土曜日

ステートメントといっても一気に処理できるわけではない

最近のプログラマーは高級言語から入るのでCPUがどういう手順で動いているのかわからないみたいです。

while ( fscanf( fp, "%d", &x[i ++]) != EOF );

このプログラムでは i には読み込んだ値数 +1 が格納されて終わりますが、この説明の際に 「i は fscanf が値を返した後にインクリメントされる」と主張する方が複数いました@@

fsanf( … ) を1つの処理としてとらえているんですね・・・でも、実際には引数を評価する処理は、順次行われてゆくわけなんですが、それを切り離して考えられないようです。

こういうプログラマーが下記のような構文に出合った時にどう解釈するのかが楽しみではあります。

while ( fscanf( fp, "%d %d", &x[i ++], &x[i ++] ) != EOF );

0 件のコメント:

コメントを投稿