文字列の表示
どうしても必要
これから、画面に文字列を表示する方法を解説します。
それは、この後、色々な解説を行うのに、どうしても必要だからです。
プログラムで色々な処理をさせることは実は簡単なのですが、
それを人間にわかるようにするのは、意外と難しいことです。
なぜなら、コンピュータ内部の処理は電気信号の流れでしかないからです。
しかし、幸いなことに、現在では、それが容易に実現できます。
コンピュータには、ディスプレイがついています。
ですから、処理の内容を、ディスプレイに表示させれば良いのです。
処理の内容が表示されないと、プログラミングの学習は成り立ちません。
プログラムが、何をやり、そしてどうなったのか、それがわからないからです。
したがって、今後のプログラミング学習のためには、
どうしても、画面に文字列を表示する方法を学んでおく必要があります。
つまり、画面に文字列を表示させるのは、学習のための準備なのです。
printf関数
C言語で文字列を表示するには、
printf(プリントエフ)関数を使います。
printf関数は、次のようにして使います。
たとえば、
HelloWorldと表示させたい場合、次のようにします。
この文をプログラムの中に書けば、画面に HelloWorld と表示されます。
ところで、この文は、一体どこに書けばいいのでしょうか?
HelloWorldは、ほとんどの入門書に登場します。
その意味では、世界一有名なプログラムだと思われます。
どこに書くのか?
前項で説明した通り、printf関数を使えば、画面に文字が表示されます。
しかし、始めにも説明したように、C言語は、main関数から始まります。
つまり、printf関数だけでは駄目であり、必ずmain関数が必要です。
とりあえず、始めに作った、main関数のプログラムを思い出してみます。
int main(void)
{
return 0;
}
C言語は、main関数から始まることは説明しましたが、
その関数の中で、どんな順番でプログラムが動くのかは説明しませんでした。
関数の中では、単純に、
上の文から順番に動いていきます。
そして、return文に到達すると、そこで関数の実行は終了します。
たとえば、次のようなプログラムがあったと仮定した場合、
int main(void)
{
文1;
文2;
return 0;
文3;
}
プログラムは、文1->文2、という順番で動きます。
文3に到達する前に、return文で関数が終わるので、
文3は無視されてしまいます。
このことから考えると、printf関数を書くべき場所がわかります。
つまり、次のように書けば良いことになります。
int main(void)
{
printf("HelloWorld");
return 0;
}
説明書の取り込み
前項で、printf関数を使ったプログラムは完成したはずなのですが、
実は、このプログラムは準備不足なので、動かしても画面に文字は表示されません。
一部のお節介を焼くコンパイラでは動いてしまいますが・・・
実は、printf関数は、C言語自体の機能ではありません。
言い換えるならば、C言語のコンパイラは、printfという関数のことをまったく知りません。
したがって、ただprintf関数を記述しただけでは、動かないのです。
動作させるには、コンパイラにprintf関数の説明書を読ませなければなりません。
C言語には、説明書を渡すための特別な命令が用意されています。
それは、
#include(インクルード)疑似命令です。
#include疑似命令は、次のようにして使うことができます。
疑似命令とは、プログラムコードではない命令のことです。
#includeはprintf関数などの準備をする命令なので、
この命令は機械語に翻訳されず、その前段階で処理されます。
```
printf関数の説明書は、stdio.h と言うファイルです。
つまり、次のようなプログラムを追加すれば、printf関数を使えるようになります。
ところで、この命令はどこに書けば良いのでしょうか?
プログラムの説明書を渡すのですから、プログラムが実行される前である必要があります。
プログラムが実行されてしまったあとでは、説明書を渡しても手遅れなのです。
このことから考えて、1番先頭(main関数よりも先)に書くのが良さそうです。
つまり、printf関数で画面に文字列を表示するプログラムは、次のようになります。
#include <stdio.h>
int main(void)
{
printf("HelloWorld");
return 0;
}
なお、#includeは疑似命令なので、関数の外側に書くことができます。
お待たせしました
皆様、長らくお待たせいたしました。
これでやっと、画面に文字列を表示するプログラムが完成しました。
#include <stdio.h>
int main(void)
{
printf("HelloWorld");
return 0;
}
このプログラムの実行結果は、次のようになります。
一般的なC言語の入門書では、1章からここまでの説明をすべて飛ばして、
いきなり上記のプログラムを紹介していることが多いようですし、
#include はおまじないだとして説明を後回しにするようです。
初めに余計なことを説明すると混乱するとも言われるので
どちらの方針が正しいのかはわかりませんが、
筆者としては、できる限りの説明を行う方針でいきたいと思います。