コーディング規約 トップページC/C++ コーディング規約 目次 

1.ソースファイルの構成

 ここでは,1つのソースファイルをどの様に構成するかを述べる。

1.1 ソースファイルの記述例

 ソースファイルの記述例を以下に示す。
 ソースファイルの履歴のコメント,ソースファイルの頭書きなどは以下の順番で記述する。

■ ファイルの記述例

// @(h) Comment.cpp ver 2.0 ( '07.09.13 今井 浩司 )
// @(h) Comment.cpp ver 1.0 ( '07.09.01 今井 浩司 )

// @(s)
//  ファイルI/O関数群
//   本ファイルはファイル入出力に関する関数群を
//   集めたものである。
//
#define HC_MAX_PATH    128   // フルパス 最大文字列数
#define HC_MAX_EXT     3    // 拡張子 最大文字列数
#define HC_MAX_FILENAME 128   // ファイル名 最大文字列数
#define HC_MAX_DATE    9    // 日付 "YY/MM/DD"

#define NUMBER_OF(a) \
    ( sizeof(a) / sizeof(a[0]) )  // 配列の要素数を得る

typedef struct Memory {  // メモリ上のバッファ
  char *s;           // 文字列
  struct Memory *next;   // リスト構造ポインタ
} MEMORY;

union u_tag {  // タグ共用体
  int ival;    // 整数
  float fval;   // 実数
  char *sval;  // 文字列
} u;

enum Boolean {  // ブール型定数
  False,       // 偽
  True        // 真
};
class Box {   // 直方体
private:
  int height;   // 縦
  int width;   // 横
  int depth;   // 高さ
public:
  Box(int,int,int);    // コンストラクタ
  int volume(void);   // 容積
  int surface(void);   // 表面積
};

■ 関数定義部の記述例

//
// 機能 : 文字位置の取得
//
// 返り値 : 文字位置[byte](検索されなかった場合は 0を返す)
//
// 機能説明 : 文字列の中から,指定文字列を検索し位置を返す。
//
// 備考 : pStrInStr( "a#c#d#eeee", "#" ) -> 2
//     pStrInStr( "a#c#d##eeee", "##" ) -> 6
//     pStrInStr( "abcdeabcde", "AA" ) -> 0
//
int pStrInStr(const char *tarstr, // 検索される対象の文字列
          const char *srcstr) // 検索する指定部分文字列
{
  int nsrc = strlen(srcstr);
  int ntar = strlen(tarstr);
  int i;
 
  /// 文字列の長さ分ループする
  for (i = 0; i < ntar; i++)
    //// ヒットした場合カウントアップし,それを返り値とする
    if (strncmp(tarstr+i, srcstr, nsrc) == 0)
      return i+1;
  return 0;
}