【C言語講座】3章前編:おまじないを理解しよう!『include〈stdio.h〉』『printf();』

C言語講座


『どーも、こんちゃっす!』

ひろちょんです~。睡眠6時間に対して、活動時間が18時間以上になりましたぁ~笑
なにもかもがずれていく日々です...

※タイトルを見て来た方は、最初の方は少し飛ばしちゃってください!

スポンサードサーチ

いきなりですが、前回の問題と解答を載せておきます。

前回に配ったCファイルとVisualStudioで開いたときの表示されるプログラムを載せておきます。

↓前回に配ったCファイル
[wpdm_package id=’710′]

↓前回に配ったCファイルの中身

#include<stdio.h>

int main(void)
{
    printf("\n");

    return 0;
}

図1 前回の課題で配ったCファイル

『このファイルをダウンロード、Visual Studio(以降VSと略します。)のテキストエディターにて編集、コンパイルを使って、Hey Hirochon!と出力してください。』というのが前回の課題でした。

VS、ディレクトリの場所指定、コンパイルとは何かわからない方は、過去のC言語講座をご覧ください。↓↓
C言語講座一覧

今から課題をやるという方は、上のCファイルをダウンロードするようにしてください※Visual StudioにてCファイル新規作成すると、ディレクトリ関係が面倒になるので薦めません。

↓こちらが答えになります。

#include<stdio.h>

int main(void)
{
    printf("Hey Hirochon!\n");

    return 0;
}
図2「Hey Hirochon!」と表示するプログラム

正解はVSのテキストエディターを使って、printf(“¥n”);をprintf(“Hey Hirochon!¥n”);に変えて、上書き保存(CTRLキーとSキー同時押し)で保存してCファイルをコンパイル実行すればよかったんですね~。

 

いやまてまて、知らない単語が多すぎるわ!

それは...こいつらかな!

  • #include<stdio.h>
  • int main(void)
  • printf(“\n”);
  • return 0;

たくさんの方から『うん。それ。』を頂いたところで、解説します!!

printf();の使い方は除いて、今回の内容は一般的に魔法の言葉と説明されるもので、理解を省略させられる所になります。はっきり言って難しいので、読み飛ばして頂いても結構です。

 


今回の目次です。

  1. これはいける!printf();の使い方!
  2. 《ちょいムズ》プログラム冒頭の#include<stdio.h>
  3. 後編:《難》int main(void)とreturn 0;とは

これはいける!printf();の使い方!

ひらめき
課題にて、printf(“¥n”);の中身を変えればいいと書いていました。
『待って。こいつら何?』って感じですよね。↓

  • printf();
  • ¥n

printf();とは画面に出力!

printf(“Hello World¥n”);とVSのテキストエディターに書いて、保存→コンパイル→実行をすると、《Hello World》と出力されました。今回ではprintf(“Hey Hirochon!¥n”);と書いて、《Hey Hirochon!》と出力されました。

見比べると、””(ダブルクォーテーション)で囲まれている場所に¥nは共についているのですが、書いている文章が違いますね。

そうなんです!

○○○○¥n”←この○部分にテキストエディターを使って、文章を入力すると、その部分が出力されます!!

先ほどのCファイルを使って、ファイル名は変えなくていいので、VSのテキストエディターにて編集をして、好きな文字を入力してみてください!!
※上書き保存と、コンパイルは忘れずに!

↓はコンパイルと実行の方法を忘れた方はこちら。

¥nってなんだよ笑

引っ張ってしまいすみません。

ずばり!改行してるだけ!

本当にこれだけです。笑

ただこの改行はプログラムを書く上で、最後に必ず付いています。

AOJというプログラミングの問題集が載っている有名なサイトがあるのですが、こちらのサイトはプログラムの正誤判定機能が付いていまして、最後に¥nを出力しないと、正解を出してくれないんです

つまり、『プログラムの最後には必ず改行を入れてください!』ということです。

printf();は関数です。

ここで関数という言葉をすこし解説しちゃいます。
関数とは、数学で聞いたことがある方もいらっしゃると思いますが、そのとおりで、与えられた値に対して何かを返すものです
1次関数だったらy=2xでxに2を代入すると、4が返ってきますよね。
それはプログラミングでも同じで、printf();も()内に与えられたものを、画面に出力で返します。
下図では、printf();の()内に”4″を代入して、4を返しています。
kannsuu
このように何かを与えるに対して、何かを返すことから、printf();を関数と呼んでいるわけです。(他にもscanf();やsqrt();など様々な関数があります。)

ここからちょいムズになります。どのみち理解できますので、いま理解しなくてもいいやという方は飛ばしてください。

スポンサードサーチ

プログラム冒頭の#include<stdio.h>

c-picture

さて、プログラムを書く際に必ず#includeの文がついてますよね。

こちらの名称を先に書いておきますね。

  • #include ← プリプロセッサ指令
  • <stdio.h> ← ヘッダファイル

#include

まずコマンドプロンプトでは、プログラムをコンパイルする前に、様々な処理を行うことができます。その処理を指示するために、指示内容をソースプログラム内に書き込んでおく必要があります。またこの時の『コンパイルする前の処理』プリプロセス(前処理)と言います。またそのような前処理を行うシステムをプリプロセッサと言います今回ではその中でもincludeという指示を出しているわけですね!

↓重要な点は↓

#→プリプロセッサで何かするで!

include→ヘッダファイルを読み込むで!

さらっとincludeを出しましたが、#includeでは、ソースプログラムにて使用するヘッダファイルや他のソースプログラムをinclude(英訳:含める)します
使い方↓
#include<ファイル名>
簡単ですね!ファイル名と書かれたところにヘッダファイル名を書くだけです。

じゃあヘッダファイル<stdio.h>とは?

#includeの説明を終えたところで、次はヘッダファイルについてです。#includeが<>を用いて、ヘッダファイルというのを読み込むものというのは伝わったと思いますが、ヘッダファイルはどのような働きをするのでしょうか。

上の課題ではstdio.hincludeしています。まずstdioというのはstandardなinput、outputを略したもので、日本語で言うと標準的な入力と出力という意味になります。後ろの.hはヘッダファイルの頭文字ですね。この標準的な入出力をincludeすることによって、先ほど説明した関数printf();が使えるようになります

わかりやすくもう一度説明すると、printf();を使うためには、stdio.hincludeする必要がありますもしstdio.hincludeしていなければ、コンパイル時にコマンドプロンプトに『え?printf();ってなに?』と言われてエラーが出てしまいます。

わかりやすく例え話で解説!

小学校の授業を受けに行くときには、カバンに<筆箱><給食セット>#準備して持っていきます。そして授業を受ける時には、<筆箱>から鉛筆();消しゴム();を取り出して、つかいますよね!給食を食べる時には、<給食セット>からお箸();フォーク();などを取り出して、食べますよね!

お気づきでしょうか?役割によって色分けや、書き方を似せてみました。includeの役割にはオレンジ色で#が付いています。ヘッダファイルの役割には赤色で<>が付いています。関数[printf]の役割には、黒の太文字で();が付いています。

つまり鉛筆という関数を使うためには、鉛筆が収納されている筆箱というヘッダファイルが必要となります。また筆箱を持っていくには、筆箱準備するというincludeすることが必要なのです!

理解できましたか??

まとめのプログラム面へ行きますね。

#include<stdio.h> //←関数printf();を使うためにstdio.hinclude
int main(void){
    printf("おっす。\n"); //←stdio.hincludeしたことから使用可
    return 0;
}
図3 「おっす。」と出力するプログラム

少し疲れましたか?

『いいえ!僕はまだまだいけます!!』

集中し続けることは良いことですが、たまにはドリンク休憩もはさんでください。笑

それでは次は

int main(void){
    return0;
}

この部分について後編で触れていきます!↓↓