talosのプログラミング教室

WSLでプログラミングをしよう!

スポンサーリンク

はじめに

こんにちは。talosです。

前回はWSLの環境構築をしました。

でも、あのままではまだプログラミングなどはできません。

そこで今回はプログラミングをするための最低限の環境を作り、実際にコードを書いてみます。

下準備

初期設定では海外のサーバーにデータを取りに行くようになっているため、インストールに時間がかかります。

そこで、次のコマンドを実行してください。

sudo sed -i -e 's%http://.*.ubuntu.com%http://ftp.jaist.ac.jp/pub/Linux%g' /etc/apt/sources.list

するとパスワードを入力されるように促されるので、前回設定したパスワードを入力しましょう。

これで、日本のサーバーにデータを取りに行くようになりました。


次にパッケージのアップデートを行います。

次のコマンドを実行してください。

sudo apt update
sudo apt upgrade

パッケージのアップデートはできるだけ頻繁に行うようにしましょう。

プログラミングをするための準備

まず、プログラムを書くためにはテキストエディタが必要です。

今回はemacsをインストールしますが、気に入っているテキストエディタがある方はそちらをインストールしてください。

emacsのインストールは次のコマンドを実行するだけです。

sudo apt install emacs

インストールが終わったら次のコマンドを実行してみましょう。

emacs --version

バージョンが表示されれば正しくインストールされています。


次に、開発ツールをインストールします。

今回は練習ということでC言語の開発ツールをインストールします。

次のコマンドを実行してください。

sudo apt install build-essential

こちらもインストールが終わったら次のコマンドを実行してみましょう。

gcc --version

gccC言語C++などのコンパイラで、コンパイラは人間が書いたソースコードをコンピュータが読めるように変換するプログラムです。

変換することをコンパイルといい、これをしないとプログラムを実行できません。

プログラミングをしてみる

まず、

emacs sample.c

と打ってみてください。

ちなみに、「sample.c」はファイル名で、「.c」はC言語の拡張子です。

先ほどまでと違う画面が表示されたと思います。

ここからがプログラミングです。

次のソースコードを書いてみましょう。

※ 必ず半角文字で書いてください

#include <stdio.h>

int main(void)
{
  printf("Hello, world!\n");

  return 0;
}

書けたら「Ctrlキー」を押しながら「x」を押し、続けて「Ctrlキー」を押しながら「s」を押しましょう。

(今後、以上の操作をCtrl-x Ctrl-sと表記します。)

すると下のほうに「Wrote /home/○○/sample.c」と表示されたと思います。

これでこのファイルが保存されました。

そしたらCtrl-x Ctrl-cでemacsを終了します。

ソースコードの説明は後にして実行してみましょう。

まず、次のコマンドでコンパイルします。

gcc -o sample sample.c

「-o」オプションで実行ファイルに名前を付けることができます。

今は実行ファイルに「sample」と名付けました。

ls

を実行すると「smaple」というファイルが作成されていると思います。

では、プログラムを実行しましょう。

次のように打ち込んでください。

./sample

すると「Hello, world!」と表示されたのではないでしょうか。

「./sample」は前回の記事で説明した通り、「カレントディレクトリにあるsampleという名のファイル」を指しています。
talosta.hatenablog.com

つまり、実行ファイルの名前を打てば実行されるので、絶対パスで指定しても大丈夫です。

ただし、カレントディレクトリを省略して「sample」と打っても実行できないので注意してください。

プログラムの説明

それでは先ほど書いたプログラムの説明をします。

#include <stdio.h>

int main(void)
{
  printf("Hello, world!\n");

  return 0;
}

1行目の

#include <stdio.h>

は「stdio.h」というヘッダファイルをインクルードしています。

ヘッダファイルには様々な関数が書かれています

つまり関数を使えるようにするおまじないのようなものです。

では、関数とは?となると思います。

簡単に言うと何度も使う処理をひとまとめにしたものです。

「stdio.h」はほとんど毎回使うような関数が書かれているので、C言語で書く時には必ず書くようにしましょう。


3行目の

int main(void)

はmain関数という特別な関数です。

一番最初に実行されます。

関数を作る場合は「戻り値の型 関数名(引数1, 引数2, ...)」と書き、その後の{ }の中に処理を書きます。

つまり、voidという引数を取り(voidは空という意味なので実際には引数を取らない)、int型(integerの略、整数型)の値を返すmain関数を定義しています。


5行目の

printf("Hello, world!\n");

は「stdio.h」内のprintf関数というものです。

C言語の標準出力の関数です。

「""」の間にある文をコンソール画面に出力します。

ちなみに「\n」は改行文字といいます。

名前の通り改行してくれます。

先ほど関数の定義の仕方は説明しましたが、関数を使うときは「関数(引数1, 引数2, ...)」と書きます。

そして文の最後に「;」を付けます。

ほとんどの文には「;」を付けます。

つまり、付けない文もあります。(付けても問題はありません)

付ける付けないの区別はここに書くときりがないので、経験から学んでください。


7行目の

return 0;

はreturn文というもので、「return 戻り値」と書きます。

main関数の戻り値はint型と宣言したので、int型の0を返します。

C言語のmain関数では正常終了の場合0、異常終了の場合0以外の値を返すそうです。


おわりに

今回はWSLでプログラミングをする準備をして、超基本的なプログラムを作ってみました。

これからについてですが、プログラミングの基礎が書かれたサイトは山ほどあるので、そこら辺をすっとばして応用編に移っていこうと思います。