わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

こんにちは,エラーのある世界 (0)準備

Cのプログラムにわざと間違いを入れて,コンパイルすると,その間違いに応じたエラーメッセージが表示されます.プログラミング学習の早い段階から,典型的なエラーを知っておくと,「何をすればよいか,何をしてはいけないか」が気づきやすくなり,コーディングの能率もアップします.
「こんにちは,エラーのある世界」と題して,1日につき一つのプログラム(ソースファイル)を紹介していきます.本日は実行環境と,基準となるエラーのないプログラムの紹介です.
実行にあたり,Windows 10 + Windows Subsystem for Linux (WSL) + Ubuntu 18.04を使用しました.インストール方法や利用上の注意などは以下よりご覧ください.

2台のPCで,動作を確認し,スクリーンショットを撮りました.一つはふだん使っていないノートPCで,WSLのUbuntu 18.04をインストールしたのち,(このUbuntu用の)ユーザを新規に作成してから,「sudo apt update」と「sudo apt install build-essential」を実行したのみです.いわば,Cのコンパイルと実行を行うための最小限の環境です.メッセージは英語で,環境変数LANGの値はC.UTF-8となっていました.以下,「実行環境1」と呼びます.
もう一つは常用のデスクトップPCで,WSLのUbuntu 18.04のほか,wsl-terminalをインストールして起動し,フォントを変更してサイズを大きく(自分にとって見やすく)しているほか,シェルはzshを使用し,日本語メッセージを出すよう環境変数LANGの値はja_JP.UTF-8にしています.以下,「実行環境2」と呼びます.
基準となるエラーのないプログラムは,いわゆるハロー・ワールドです.wikipedia:Hello worldに記載のプログラムを,少し書き換えて,hello.cの名前で保存しました.

#include <stdio.h>

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

  return 0;
}

「cat hello.c」というコマンドで,プログラムファイルの中身を端末に表示させてから,「cc hello.c」のコマンドでコンパイルを行うと,実行ファイルa.outが作られます.「./a.out」で実行すると,無事に「hello, world」が表示されました.
実行環境1では:

実行環境2では:

どちらの画像にも,深い青色による横長の線が3本,あります.実際の画面では,ここにユーザ名とホスト名(計算機名)が書かれていまして,都合により隠しています*1.直後の「$」と合わせて,プロンプトと呼ばれ,我々はこのプロンプトの部分は打ち込みません.
さて,毎回カギカッコをつけて,地の文の中でコマンドを示すのは,書きにくいし読みにくいです.実行するコマンドとその出力は,以下のように記すのが一般的です.

$ cat hello.c
#include <stdio.h>

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

  return 0;
}
$ cc hello.c
$ ./a.out
hello, world

この表記においても,プロンプトの「$ 」は,実行時には打ち込みません.また「cc hello.c」のコマンドは(エラーがないと)何も出力されないため,「$ 」が2行,連続した形となっています.
次の記事からは,hello.cにエラーを入れて,どんなコンパイルエラーが発生するかを見ていくことにします.

*1:タイトルバーの表示も,塗りつぶしています.