Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ プログラムの実行方法 | C入門
C基礎

bookプログラムの実行方法

メニューを表示するにはスワイプしてください

Note
定義

コンパイラは、人間が読めるCソースコードをプロセッサが実行可能な機械語に変換する専用プログラム。この変換プロセスにより、記述した命令がコンピュータが理解し実行できる実行ファイルとなる。

コードをプロセッサ用の特定の命令に変換するには、コンパイラが必要。コンパイラはコードを上から下へ順番に処理する。コンパイルの過程は複数の段階に分かれる。

  • プリプロセッサ処理: すべての #include ディレクティブが処理され、外部ファイルやライブラリ、その他必要なコンポーネントがプログラムに統合される。

  • 構文エラー解析: コンパイラが構文エラーをチェックし、誤りがあればコンパイルを停止し、修正箇所を指摘する。

  • 実行ファイルへのコンパイル: プログラムが実行ファイル(例:Windowsでは .exe)に変換され、他のアプリケーションと同様に実行可能となる。

実行可能ファイルは、プロセッサ向けに設計された一連の命令(機械語)です。参考までに、"Hello, c<>definity" というフレーズが機械語ではシーケンスのように見える場合があります。

program.exe

program.exe

copy
12
01001000011001010110110001101100011011110010110000100000011000110011110000111 110011001000110010101100110011010010110111001101001011101000111100100100001

Cコンパイラがどのように問題を検出し報告するかを示すため、以下のコードには意図的なエラーが追加されています。

Main.c

Main.c

copy
12345678
#include <stdio.h> int main() { printf("some text") // Error line return 0; }

コンパイラは5行目の末尾にセミコロン(;)があることを期待します。これがない場合、コンパイラは文の終わりを認識できず、return 0; を同じ行の一部として扱います。その結果、実際の問題は**printfの後のセミコロンの欠落**であるにもかかわらず、エラーは次の行に表示されます。

Main.c

Main.c

copy
12345678
#include <stdio.h> int main() { ;; ;;;;;; printf("C language\n");;; ;return 0; ;;; }

Cコンパイラは余分なセミコロンに対してかなり寛容です。複数の ; は見た目には奇妙ですが、空文として扱われ、プログラムの動作には影響しません。コードは問題なくコンパイルおよび実行されますが、不要なセミコロンは避けて、コードをクリーンで読みやすく保つことが推奨されます。

question mark

コンパイルの手順は何ですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  3

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 1.  3
some-alt