University of Fukui, Department of Applied Physics

Koishi's Page

プログラミング(1)「コンパイルと実行」

はじめに

コンピュータが実行できるファイルは、 コンピュータにとって理解しやすい形式になっているため、 通常は人が見ても直接は理解できません。 そのため実行ファイルを作るためには、 始めにプログラムの人が見て理解できるソースファイルを作成します。 その後、 コンパイラを使ってコンピュータが理解できる実行ファイルを作成します。 この作業をコンパイルと呼びます。


ソースファイルの作成

ソースファイルを作るためにはエディタを使用します。 ここではエディタにemacsを使うことを前提とします。 emacsの詳しい使用法を知りたい人は「emacs」を検索で調べて下さい。

先ず、

> emacs hello.c &

と入力するとemacsが起動します。次に以下のソースを入力します。

#include <stdio.h>
main()
{
  printf("Hello, World!\n");
}

入力が終わったら、C-x, C-s ([CTRL]キーを押しながら[x]キーを押した後に[CTRL]キーを押しながら[s]キーを押す。) でファイルが保存され、ソースファイルが出来上がります。


コンパイル

次にgcc というコンパイラを使って、ソースファイルをコンパイルします。

> gcc hello.c -o hello

上記のように入力して、エラーが出なければ実行ファイルが出来ているはずなので lsコマンドで確認してみてください。 実行ファイル名はWindowsの場合はhello.exeでLinuxの場合はhelloです。 実行ファイルのファイル名はコンパイルするときのオプション-o で指定してます。


プログラムの実行

プログラムを実行するためには、実行ファイル名を入力します。

> hello
Hello, World!

Windowsの場合、実行ファイル名はhello.exeですが.exeは省略できます。


プログラムの説明

1行目のincludeはプリプロセッサ命令で、stdio.hをこの場所に展開します。 とりあえず書いておく呪文みたいなものだと思ってください。 2行目のmainは、mainという名前の関数を表していて、 C言語ではこのmain関数から実行が開始されます。 3行目の中括弧はmain関数の始まりを表します。 4行目のprintfは画面に文字列を出力する関数で、 ダブルクォートで囲まれた文字列を表示します。 \nは改行を意味します。5行目の中括弧はmain関数の終わりを意味します。

文末にある;(セミコロン) は行末であることを示しています。 プログラムでの行末はプログラムを書く人が指定するので、 プログラムの見た目の書き方にほとんど制限がありません。 上記のプログラムを

#include <stdio.h>
main(){  printf("Hello, World!\n");}

と書くことも出来ます。 ただし、なるべく見やすいように書いたほうが後々苦労が少なくなります。

演習
以下のような表示を行うようにプログラムを変更せよ。
Hello
World!

コメント

プログラム中にメモ書きとしてコメントを書くことができます。 コメントは/*と*/の間に書きます。

#include <stdio.h>
main()
{
  printf("Hello, World!\n"); /* メッセージの表示 */
}

また、//を付けるとそれ以降はコメントと見なされます。

#include <stdio.h>
main()
{
  printf("Hello, World!\n"); // メッセージの表示
}

プログラムの一部をコメントにして実行しないようにすることもできます。 これをコメントアウトと呼びます。 プログラミングの一部を実行させたくないが一応プログラムを残したい、 というときにコメントアウトを使用します。

#include <stdio.h>
main()
{
/*  printf("Hello, World!\n"); この行は実行されない */
}

基礎知識

  • コマンドでの操作(1)「ディレクトリとファイル」

C言語を使ったプログラミング

  • プログラミング(1)「コンパイルと実行」
  • プログラミング(2)「変数」
  • プログラミング(3)「制御命令」
  • プログラミング(4)「関数」

太陽系の作成

  • 太陽系の作り方
  • 太陽系の壊し方

Copyright (C) T. Koishi