一週間で身につくC言語の基本

おさえておきたいプログラミングの基本

コラム22. コーディングルール


■ プログラミングにはルールが必要

C言語に限らず、プログラムを作成するときは、見やすく、わかりやすいものを作ることが必要となります。それは、複数の人間が携わる場合も、一人でプログラミングを行う場合も関係ありません。

そこで必要のが、コーディングルール(Coding Rule)です。これは、プログラムのソースコードを書くときの規則・ガイドラインを指します。人によっては、プログラミング作法などという言い方をしたりもします。

コーディングルールがあれば、プログラマが参加するプロジェクトにおいて、プログラミング品質を均等にすることができます。また、一人で開発している場合でも、デバッグが容易になったり、メンテナンスをしやすくなるという利点があります。

■ コーディングルールとはどのようなものか?

では、コーディングルールとは一体どのようなものなのでしょうか?具体的には、大きく分けて以下の3つの要素から構成されている例が多いようです。

  • 命名規約
  • コーディングスタイル
  • 禁止事項

コーディングルールには絶対的なルールはなく、言語による違いもありますし、それを適用する会社・組織・チームによって異なるのが一般的ですが、ここではそれらのルールについて代表的なものをいくつか紹介していくことにしましょう。

■ 命名規則

命名規則とは、変数や関数、さらにはソースコードなどの名前を付けるさいのルールのことを指します。変数名は小文字ではじめる、とか、定数は全て大文字、区切りには"_"(アンダーバー)を用いる、などといったことが一般的です。

C言語のコーディングルールとしてよく知られているものに、ハンガリアン記法と呼ばれるものがあります。名称は考案者チャールズ・シモニーがハンガリー出身であることに由来すると言われています。

このルールでは、変数名やクラス名などの識別子に特別な接頭文字ないし接尾文字をつけるというもので、例えば文字列には、頭に接頭辞「s」をつけて、sNameとする、とか、グローバル変数の接頭辞を「g_」として、g_nPowerなどといった命名にする、といったものです。

かつて、この記法は、マイクロソフトがMFCというライブラリを使っていた時は推奨していましたが、その後一転して同社はこの記法を非推奨にしました。このことからもわかるように、状況によってルールは変わるのです。

■ コーディングスタイル

コーディングスタイルとは、文字通りコーディングのスタイル、つまりプログラムの記法に関するものです。これは言語やチームによってずいぶん異なります。

しかし、言語の違いを超えた割合普遍的なルールとして、「インデントは半角スペース4文字分とし、タブを使用する」とか、「変数は宣言と同時に初期化する」といったものが、あります。

これらのルールは、ソースコードの可読性をあげ、守ることによってソースコードのメンテナンスがしやすくなります。

■ 禁止事項

前述2つのルールも大事なのですが、特に気を付けなくてはならないのが、この禁止事項です。文字通り、「やってはいけないこと」で、それによりプログラムの可読性を下げたり、プロジェクトを混乱させることを防ぐためのものです。

例を挙げると、以下のようなものが比較的普遍的なものとして挙げられます。

  • ハンガリアン記法は使用しない
  • インクルード、多重インクルード以外の目的でプリプロセッサを基本的に使用しない
  • gotoは特別な理由がない限り使用しない

とくに、「goto」は、プログラムの流れを著しくわかりにくいものにするため、言語仕様として利用できても、多くのコーディングルールでは厳にこれを使用することを禁止しています。

一週間で学べるコースの一覧
Udemy
...
2024/10/01

Udemyでも学びましょう!

一週間でわかるC言語・C++言語がオンライン講座になりました!動画音声によってさらにわかりやすくなりました!! 1講座で2つの言語を学ぶことができる上に、練習問題の回答もダウンロードできます。

Read →
Impress一週間シリーズ
1週間でC言語の基礎が学べる本
2024/10/01

書籍化された一週間シリーズ

本講座が「1週間でC言語の基礎が学べる本」として書籍化されました!サイトの内容プラスアルファでより学習しやすくなっています!Impressより発売中です!!

Read →
Impress一週間シリーズ
...
2024/10/01

書籍化された一週間シリーズ

一週間シリーズは書籍化されています。こちらもどうぞ!

Read →
プログラマーなら欲しいグッズ
プログラミンググッズ

プログラミンググッズ

快適なプログラミング環境を構築したい人々にぜひとも揃えてほしいグッズです。

Read →
制作・管理
シフトシステム株式会社

シフトシステム株式会社

このサイトはシフトシステム株式会社によって制作・管理がなされています。

Read →