【初心者向け】C言語

  • 2017-12-7

プログラミング言語を学ぶにあたって、最初にC言語を選択する人は少なくありません。C言語は覚える文法が比較的少ないため、習得しておくと他の複雑な言語を理解する助けになってくれることがあります。今回はC言語の特徴やプログラムの作成手順について解説します。

C言語とは?

C言語の特徴

1972年の登場以来、C言語は多くの人に親しまれています。「手続き型言語」「関数型言語」という二つの考え方をもとに生み出され、比較的読みやすいプログラムを組むことができます。慣れてくるとメモリを直接操作することができるようになるのも特徴です。

C言語の文法や思想は多くのプログラミング言語と関連性があります。Androidアプリなどの開発に使われているJavaやApple製品のアプリ開発に必要なObjective-Cなども、C言語の影響を多少なりとも受けていると言えます。

C言語自体はロボットや電子機器のプログラムに用いられている他、ゲームやアプリケーション、UNIXやLinuxなどのOS(オペレーティングシステム)の開発にも利用されています。

C言語のプログラムの作成手順

エディタを使用してソースとなるプログラムを作成する

C言語はソフトウェアにソースコード(この場合、C言語で記述した文字列のこと。プログラムの元となります)を読み込ませ、実行ファイルを生成することでプログラムを作成します。プログラムそのものを記述する際は「エディタ」というテキストファイル編集ツールが必要となりますが、まずはあらかじめPCにインストールされているメモ帳などを使っても構いません。慣れてきたらプログラミングに便利な機能が搭載されたTeraPadやGPad、プログラマ向けのVisualStudioCodeやAtomなどのエディタなどに切り替えても良いでしょう。

コンパイルする

人間にはわかるソースコードも、そのままの形だとコンピュータは理解ができません。そのため、形式を換える作業が必要となります。C言語の場合、作成したソースコードはソフトウェアを通してコンピュータにも認識できる「OBJ(オブジェクトモジュール)形式」に変換します。この作業のことを「コンパイル」、コンパイルに使うソフトウェアのことを「コンパイラ」と呼びます。

リンクする

OBJ形式へ変換されたソースコードですが、まだ単体で実行できるわけではありません。コンパイルによってOBJ形式へ変換した後は、プログラムとして実行できる形式「EXE(エグゼ)」へ再変換します。

この時、記述したソースコードの中で外部のプログラムを呼び出していることがあるのですが、呼び出しているプログラムと呼び出されているプログラムはまとめてひとつにしておく必要があります。この作業のことを「リンク」、リンクを行うソフトウェアのことを「リンカ」と呼びます。

C言語の書き方の基本

単位関数

C言語は「関数」という単位ごとに処理を呼び出してプログラムを実行します。数学の関数とは異なり、C言語の関数は何の値も返さなかったり、複数の値を受け取ったりすることが特徴です。

関数では「引数(ひきすう)」という入れ物を用意し、そこへ呼び出し元からデータを受け取ります。受け取った引数を元に処理を行い、処理によって出来上がったデータを「戻り値」という箱に入れて呼び出し元に返します。「引数」や「戻り値」についての情報を明示することを関数の「定義」や「宣言」と言い、コンパイラが誤った関数を呼び出すことを防ぐ役割があります。

main関数が必ず必要

C言語ではプログラムを実行するときに「main」という名前の関数を最初に呼び出すという決まりがあります。そのため、main関数は必ず実装しなければなりません。main関数の呼び出し元はOSです。

main関数の宣言の方法はいくつかありますが、引数は「void」、戻り値は0にするのが一般的です。voidとは英語で「何もない空間」、つまり「引数は受け取らない」という意味です。戻り値の「0」はOSへ返します。この値は呼び出し元のOSへ「プログラムが無事終了した」という意味を伝える役目を持っています。

すべての関数は{ }でくくる

main関数の記述例を紹介します。

int main(void){
/* ここに処理を記述 */
return 0;
}

先ほど説明した点を踏まえると、voidが引数、returnが戻り値であるとわかります。そして、忘れてはいけないのがこの記号 { } (波括弧)です。C言語では関数の処理をこの波括弧の内部に記述します。つまり、上記のコードはmainという「関数名」の次に「引数」、そして波括弧の中に「処理」が記述されており、「戻り値」は0であることが確認できます。

まとめ

C言語は広く学習されている言語であり、様々な用途のソフトウェアを開発することができます。記述ルールや手順も覚えやすい傾向にあり、これからプログラミング言語を習得しようと考えている人にも適していると言えます。

ページ上部へ戻る