|
関数名の命名規則
このセクションでは、関数設計についてのノウハウを書いていきたいと思います。
C言語では、文法にのっとっていれば自由に関数を作ることができます。どのような名前をつけてもいいし、どんな引数や戻り値にしてもいいし、どんなに長い関数や逆に短い関数でも作ることができます。
でも、自分の好き勝手に作っていたら、独りよがりなおかしなプログラムになってしまいますよね。なんでもそうですが、一般的な「作法」というものがプログラムにもあります。
よくプログラムを「1から作る」と言うことがありますが、関数設計に関しては、創造性は必要ありません。ここはほぼ機械的にできます。ここはオリジナリティを出すところではなく、逆にオリジナリティを出すと、他の人が見た時に「なんじゃこりゃ」と思われてしまうでしょう。
関数設計は、より「一般的で」「自然な」設計になるように意識することが大切です。
ではまず、関数名の付け方を見てみましょう。Cの標準関数は小文字で統一されていますが、ユーザ関数はシステム関数と区別するために、単語の区切りごとに先頭を大文字にします。例えば、strlen()という関数がもしユーザ関数だったら、StrLen()になります。
次に、単語は基本的に「動詞」+「目的語」の形式をとります。その関数が「何を」「どうする」関数なのかというのをそのまま関数名にするわけです。例えば、ファイル一覧を取得する関数であれば、GetFileList()になります。
少し特殊なケースとして、何かが真なのか偽なのか問い合わせる関数があります(こういう関数は戻り値がbool型です)。このような関数は、Is
+「何が」+「どうなのか」という名前をつけます。例えば、ユーザIDが有効かどうかを検査する関数は、IsUserIDValid()になります。ちょうど、英語の疑問文のような形式になります。
C言語では、ある程度大きなプログラムになると、プログラムをモジュールに分割して作ります。モジュールに分割した場合は、モジュール名を関数名の頭につけてもよいでしょう。例えば、ファイル入出力を扱うモジュール「file」を作ったとしたら、関数名はFileOpen()、FileClose()、FileSeek()のようになります。(この場合、目的語はfileなので、FileOpenFile()のように2重に書く必要はありません。)
また、関数名はなるべく短くなるようにしましょう。例えば、StringConvertUpperCaseToLowerCase()なんていう関数名は長すぎるので、適当に省略して、StrToLow()ぐらいにしておきましょう。
最後に、関数名は英語でつけてください。関数名にJikokuとかOomojiなんて言葉が入っていると非常にかっこ悪いです^^;
|