第4回 C/C++ hello worldってなんなんや,,,

プログラミングのチュートリアルを行っている場合,よく「Hello World」って出力するプログラムを書くと思います.なんでなんでしょうかね?
今回から「Hello World」を出力するプログラムを書いていきましょう.

Terminalの使い方

まずは,Terminalの操作に慣れていきましょう.Terminalとは,windowsでいうコマンドプロント(又はpowershell)に相当し,コマンドのみでパソコンを操作できるソフトです.

Terminalの起動ショートカットは,「Ctrl + Alt + t」に割り当てられていることが多いと思います.ショートカットに割り当てられていない場合は,スタートメニューより「ターミナル」と書いてあるアプリケーションをクリックしてください.

基本のコマンド

mkdir directory_name
・・・・ディレクトリ(フォルダ)の作製

cd directory_name
・・・・フォルダ移動

ls
・・・・ディレクトリ(フォルダ)内のファイルの表示

nano file_name
・・・・大体のlinuxOSに標準で搭載されているテキストエディタ.vimより,使い方は簡単.

rm file_name
・・・・ファイルの削除

ターミナルのコマンドのほとんどにはオプションと呼ばれる機能が搭載されており,コマンドの後に「-(command)」を入れることで機能を使うことができます.
大体のコマンドは,「-h」を入れることでコマンドのヘルプを表示することができます.

Hello Worldを出力

まずは Hello Worldを出力 するためのC言語で書かれたプログラムを見てみましょう.

#include<stdio.h>

int main(void){
    printf("Hello World.\n");
    return 0;
}

行数は少ないですが,これも立派なコードですね.次に部分ごとにプログラムを確認していきます.

#include<stdio.h>

CやC++では,プログラムの初めにインクルード文というものを記入します.標準状態のCやC++の状態では,最小限の機能しか搭載されておらず,ターミナルに文字を出力するために先ほどより長いプログラムを書く必要があります.そこで,インクルード文を使用し「ヘッダーファイル(.hで終わるファイル)」を読み込むことでCやC++の機能を拡張し,より簡潔にプログラムを記述することが出来るようになります.このようにCやC++に機能を拡張するプログラムをライブラリと呼びます.
「stdio.h」は標準入出力のライブラリで,ターミナルの出力,キーボード入力,ファイルの書き込み・読み込みを行う機能を追加します.

int main(void){
  return 0;
}

メイン関数と呼ばれるプログラムで,プログラムを実行するとこのメイン文の中にかかれた手順に従います.「return 0;」は戻り値と呼ばれ,関数(今回はメイン関数)が終わる時に出力される値になります.関数と戻り値に関しては,別のセクションで詳しく説明します.

printf("Hello World.\n");

最後にターミナルに文字を表示するプログラムについての説明.「printf(“表示したい内容”);」で文字を出力することができます.「”\n”」はエスケープ文字と呼ばれ,改行の役割を持っています.

コンパイル型とインタープリター型

次にプログラムの実行の仕方について話していきます.プログラムの実行の仕方には主に二つの種類があります.

  • コンパイル型
    ソースプログラム(C言語などで書かれたプログラム) → コンパイル → 機械語 → 実行
    C,C++,C#,Rust,switf,Fortran,(Java)など
  • インタープリター型
    ソースプログラム → 一行ずつ実行
    python,Javascript,phpなど

c言語のようなコンパイル型の言語は,実行する前にソースプログラムをコンピュータが実行しやすい形に書き直し,その書き直したファイルを実行します.一方で,インタープリター型の言語はプログラム一行ずつプログラムを実行していく性質を持っています.
どちらの方式にも一長一短ありますが,インタープリター型では対話型でプログラムを作製,コンパイル型では実行速度が速く処理能力の低いコンピュータでも動作するというのがそれぞれの一番の長所だと思います.

コンパイルする

先ほどのプログラムをメモ帳やテキストエディタを使い「test.c」で保存しましょう.ターミナルから,「cd」コマンドを使用し, 「test.c」 を保存したディレクトリ(フォルダ)に移動してください.そこで,

gcc test.c

と入力すると「a.out」というファイルが出力される.プログラムに不備があった場合はこのコンパイルの際にエラーが表示される.無事に「a.out」が出力されたら

./a.out

と入力すると

Hello World.

と出力されます.以上がC言語のソースプログラムを実行する基本的な流れになります.

今回はここまでです.関数などの細かい内容は,別のセクションで説明しなおそうと思います.コンパイラなどにもいろいろな種類があるので,ご自身で調べてみると面白いと思います.
最近Windows Subsystem for Linux(WSL)をインストールし使ってみたところ非常に便利だったので,次回はWSLのお話をするかもです.