• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プログラムの通常の流れは上~下でコンパイルされる?)

プログラムの通常の流れは上~下でコンパイルされる?

このQ&Aのポイント
  • #プログラムの通常の流れは上~下でコンパイルされる?
  • プログラムの通常の流れは上から下へと順番に実行されるのが一般的ですが、コンパイラによっては最適化や最適順序のルールが存在することもあります。
  • プログラムの中には、関数の定義と呼び出しの間に定義がある場合、その定義部分は呼び出し部分よりも前にもってくることがあります。これにより、関数が正しく動作するようになります。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.7

>  以下の使い方がいまいちわかりません? > printf("kansuu de hyouji\n"); > modori = hikisuu1 * hikisuu2; > printf("modori = %d\n", modori); 使い方というか、元のコードは関数の作成例だと思いますが、関数を利用しないで使ってる変数は利用するとして同じような流れだと以下のような感じでしょうか。 int main() { int modori; int hikisuu1; int hikisuu2; hikisuu1=2; hikisuu2=3; printf("kansuu de hyouji\n"); modori = hikisuu1 * hikisuu2; printf("modori = %d\n", modori); return 0; }

Campus2
質問者

お礼

毎度ご回答まことにありがとうございます。  同じ結果が得られました。 すばらしい。 kansuu de hyouji modori = 6    とても分かりやすいです。     最初のきむずい!プログラムと比較した場合、同じ結果ですが!  あえて!きむずいプログラムを使用した目的は!   複雑化していくプログラムの流れの中で、必要だからなのでしょう。    ご紹介していただいた、プログラムと比較しながら勉強したいと思います。    その他のスレッドのご回答いろいろありがとうございます。 今後とももよろしくお願いたいします。  

その他の回答 (6)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.6
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.5

「コンパイル」と「実行」は区別してください.

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.4

>  この場合なぜ! > kansuu de hyouji >  が最初になるのでしょうか!? modori = kansuu(2, 3); でkansuuを呼び出していますからその中にある printf("kansuu de hyouji\n"); が実行されて knnsuuから抜けた後に printf("modori = %d\n", modori); が実行されますから kansuu de hyouji modori = 6 の順に表示されます。 kansuu(2, 3)のところにint kansuu(int hikisuu1, int hikisuu2)が展開されると考えてください。 printf("kansuu de hyouji\n"); modori = hikisuu1 * hikisuu2; printf("modori = %d\n", modori); と書かれているのと同じことになります。 ステップ実行してみるとどの順番で実行されていくか目視できますよ。

Campus2
質問者

補足

ご回答ありがとうございます。  以下の使い方がいまいちわかりません? printf("kansuu de hyouji\n"); modori = hikisuu1 * hikisuu2; printf("modori = %d\n", modori);     よろしくお願いします。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

では、素人考えなど止めて、正しいプログラミングを勉強しましょう。 分岐、ループ、呼び出し、ジャンプ等、実行順序が「上から順番」でないものが沢山あります。 それと、「コンパイル」は実行できるようにするための準備です。 コンパイルの順序と実行の順序は関係ありません。

noname#215107
noname#215107
回答No.2

それは、このような順番で書かれているからとしか言いようがありません modori = kansuu(2, 3); printf("modori = %d\n", modori); コンパイルの順番とプログラムの実行順は関係ありません。 この質問とは関係ないことですが、Cコンパイラは原則、ワンパスコンパイラですから上から下へ一回のみコンパイルされます。

  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

プログラムの基本がわかってないですね。 例えば、スケジュールで  9:00から5階で会議。 10:00から3階で仕事。 11:00から7階で撮影。 とかあったら 「ビルは5階と7階の間に3階はない」といいますか?

関連するQ&A