C言語入門:はじめの一歩

プログラミングをしたことが無い人にとっては、プログラムを書くという作業はどういうものかあまり想像がつかないと思います。 ということで、まずはとりあえず書いてみて慣れていくという事が大事だと思います。 ここでは、非常に単純なプログラムを書いてみて、コンパイルするという作業をやってみるということを目的にしたいと思います。 ここでは、良く出される例題である「Hello World」と表示するだけのプログラムを紹介します。

とりあえず書いてみる

まずは書いてみる事からはじめましょう。 以下の内容をそのままテキストファイルとして作成してください。 ファイル名は「hello.c」とでもして下さい。 ファイル名は「hello.c」でなければいけないわけではありません。 別のファイル名でも大丈夫です。 ただし、ファイルの拡張子は「.c」を利用してください。 「.c」という拡張子はそのファイルがC言語で書かれたソースコードであることを示しています。 別のファイル名にした場合には、以下の説明では「hello.c」を利用したファイル名に置き換えて下さい。


#include <stdio.h>

main()
{
  printf("Hello World\n");
}

上記内容を書き込んだファイルが出来上がったら、次はそれをコンパイルします。 どうやって動くかを見てからの方がわかりやすいと思うので、とりあえず内容の説明は後回しにします。

コンパイルをするには、コマンドプロンプトで「gcc hello.c」という風にgccを実行します。 Linux、FreeBSDなどのUNIX系OSでは、普通にコマンドプロンプトで「gcc hello.c」を実行すれば大丈夫です。 Windows+Cygwinという環境では、Cygwinのプロンプトで「gcc hello.c」を実行します。

コンパイルを行うと、UNIX系OSでは「a.out」というファイルが出来上がるので、それを実行します。 Windows+Cygwinでは、「a.exe」というファイルが生成されます。 Windows+Cygwinでの実行例を以下に示します。


C:\> a.exe
Hello World

サンプルコードの最初の一行には「#include <stdio.h>」と書いています。 とりあえず、これはおまじないだと思ってください。 詳しくはもっと後で説明したいと思います。

「main()」というのが処理の中心になります。 main()の範囲は「{」から「}」になります。

printf()というのは、文字列を表示する命令です。 ここでは、「Hello World\n」と表示することを指示しています。 「\n」というのは改行文字です。 例えば、「Hello World\nHello World\n」とすると以下のようになります。


C:\> a.exe
Hello World
Hello World

CygwinだけではなくWindowsコマンドプロンプトで実行したい場合

前述したコンパイル方法だと、cygwinでしか実行できないexeファイルが出来上がってしまいます。 cygwinでgccしたexeファイルをDOSのコマンドプロンプトで実行しようとすると、「コンポーネントが見つかりません cygwin1.dllが見つからなかったため、このアプリケーションは開始できませんでした。アプリケーションをインストールし直すと問題は解決される場合があります」というメッセージとともにエラーが発生してしまいます。

この問題は簡単に回避できます。 gccでコンパイルするときに「-mno-cygwin」オプションを利用して.cファイルをコンパイルしてみてください。 以下に、コンパイルコマンドの例を示します。 a.cというファイル名は適当に変更してください。


C:\> gcc -mno-cygwin a.c

上記コマンドを利用してコンパイルして出来上がったexeファイルはcmdプロンプトでも利用できます。 printfなどを利用した簡単なプログラムであれば大抵大丈夫ですが、併用するライブラリによっては実行できない場合もありますのでご注意ください。

まとめ

ここでは、とりあえず「コンパイルと実行をしてみる」という説明をしてみました。 プログラムを書いて、実行できるソフトウェアを作るという事を実感して頂ければ幸いです。


次:数値を扱う変数

- C言語入門 記事一覧

おまけ

IPv6基礎検定

YouTubeチャンネルやってます!